当前位置: 首页 > news >正文

STM32 系列MCU 开发利器 STM32CubeIDE

前言

  • 由于自己接触较多的 ARM 系列芯片主要是 STM32 系列的,接触过 STM32 F1、F4、L4、H7 等几个系列,使用的 开发工具,主要是 Keil MDK5、IAR,所以也比较关注开发工具的使用。

  • Keil MDK5、IAR 属于商用收费的功能强大的IDE(集成开发环境),像 STM32 系列的 MCU,也可以使用 eclipse + gcc 这样的免费的开发工具,不过免费的就需要大量的定制化配置,需要花费一些时间,掌握一些开发与使用技巧。

  • 经过验证,发现 ST 官方的 STM32CubeIDE 比较的强大,能满足常用的开发需求,基于 eclipse + gcc 这样的组合,支持 ST-Link、J-Link 调试,可以【替代】 Atollic TrueSTUDIO,并且是免费使用的。

STM32CubeIDE 信息(非官方)

  • 当前下载到的最新版本:STM32CubeIDE 1.16.0

  • 选择的理由: ST 官方的推荐的开发工具,功能上类似于 Keil、IAR 这样的,对 STM32 系列的芯片做了大量的定制,因此非常适合 STM32 系列 MCU 的开发,裸机工程、RTOS 工程都可以,简单与复杂工程都可以

  • 【免费】:eclipse + gcc,并且支持 ST 官方的 ST-Link 调试,也支持常见的 ARM J-Link 调试

  • 【图形配置】:如今像 STM32 系列的 MCU,种类繁多,各个 MCU 配置也是不相同, HAL 库也是非常的庞大,数据手册、参考手册章节很多,一上来估计没有多少人又耐心去查看寄存器、看手册进行开发,图形界面配置,通过简单的配置,就可以生成【系统时钟】【外设】【引脚】等的配置代码,与 HAL 库结合,生成所需的基础驱动代码。用户只需要配置,然后写自己想要的应用,降低了开发难度,同时提高了开发效率,因为工具生成的代码,甚至正确性与一致性由于自己手动编写的代码,一些外设驱动配置,工具生成的反而正确且高效。

  • 既然可以像 Keil MDK5 那样能编辑代码、编译、调试、下载,并且集成了 【图形配置】这样强大的代码生成功能,大大提高了开发的效率,因此如果 STM32 MCU 开发,建议使用 STM32CubeIDE

STM32CubeIDE 下载

  • 进入 st 官方网址,搜索 STM32CubeIDE,也可以搜索 STM32 的某个 MCU 的型号,在 工具软件 栏目找到 STM32CubeIDE

https://www.st.com/en/development-tools/stm32cubeide.html

在这里插入图片描述

  • 需要注册 st 官方的账号,才能顺利下载

STM32CubeIDE 多开

  • STM32CubeIDE 可以【多开】,也就是 使用不同的 【Workspace】 工作区,每次打开 STM32CubeIDE 时,会提示选择 工作区,如果使用不同的工作区,就可以打开多个 STM32CubeIDE 窗口,也就是可以同时 创建管理多个 工程

STM32CubeIDE 创建工程

  • STM32CubeIDE 可以创建新工程,也可以导入工程

  • 接下来使用 STM32CubeIDE 创建一个工程,然后进行编译、调试等

在这里插入图片描述

  • 选择 MCU 的型号,当前使用的是 NUCLEO-L476RG 开发板,基于 STM32 MCU STM32L476RGT6

  • 可以逐个进行配置(类似于 STM32CubeMX),当前为了方便,直接使用 开发板默认配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 然后一步步【Next】,就可以生成 NUCLEO-L476RG 开发板 的例程了

在这里插入图片描述

编译

  • 选择 工程,然后右键,选择 【Build Project】 进行构建(编译)

在这里插入图片描述

在这里插入图片描述

调试

  • 点击调试按钮,选择调试的工程(名字),默认配置是 ST-Link,点击即可启动调试

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 默认调试的配置如果正确,就可以默认不修改,直接进行调试

在这里插入图片描述

  • 点击调试工具栏上的【单步】【步进】等调试功能按钮,就可以进行调试了

下载

  • 调试时可以 同时下载了固件到 开发板

在这里插入图片描述

  • 点击 工具栏的 【运行】按钮,也可以下载程序

  • 【备注】如果只是单纯 下载,也可以使用 STM32CubeProg 进行下载

小结

  • 本篇主要熟悉 eclipse 开发环境的 STM32CubeIDE,非常适合 gcc 编译环境的下 STM32 的开发,高效便捷

  • 后续尝试使用 STM32CubeIDE 开发 基于 RT-Thread、FreeRTOS 的工程

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Pandas_[‘index‘]_is_not_found_in_axis
  • 解读:以RTC为基,AI为脑的“超拟人”AI实时互动解决方案
  • 【IEEE出版,IEEE Xplore等多数据库检索】第五届智能设计国际会议(ICID 2024,10月25-27)
  • Excel如何把表格变成图表
  • 什么叫做 “沿着晶体平面偏析”
  • 优质的产业园都在怎么做运营?
  • 想开公司不知道需要什么资料?
  • NXP,S32K1XX J-Link调试器 J-Flash烧录指南
  • 项目实战系列三: 家居购项目 第三部分
  • 【开源免费】基于SpringBoot+Vue.JS图书个性化推荐系统(JAVA毕业设计)
  • 【Bug】Ubuntu22.04英伟达驱动安装失败,重启后服务器卡在进入系统/grub的页面
  • WS2812B驱动
  • MacBook真的不能打游戏吗?Mac打游戏会损坏电脑吗?苹果电脑怎么玩游戏
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • 在NAS上打造AI加持的云端个人开发环境
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Django 博客开发教程 16 - 统计文章阅读量
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • echarts花样作死的坑
  • gcc介绍及安装
  • HTTP那些事
  • java概述
  • laravel with 查询列表限制条数
  • Mysql数据库的条件查询语句
  • Node项目之评分系统(二)- 数据库设计
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python3爬取英雄联盟英雄皮肤大图
  • Python连接Oracle
  • socket.io+express实现聊天室的思考(三)
  • Vue--数据传输
  • zookeeper系列(七)实战分布式命名服务
  • 给初学者:JavaScript 中数组操作注意点
  • 机器学习学习笔记一
  • 讲清楚之javascript作用域
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 如何用vue打造一个移动端音乐播放器
  • 使用common-codec进行md5加密
  • 数据科学 第 3 章 11 字符串处理
  • 用Visual Studio开发以太坊智能合约
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​linux启动进程的方式
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • # include “ “ 和 # include < >两者的区别
  • # Java NIO(一)FileChannel
  • #13 yum、编译安装与sed命令的使用
  • (javaweb)Http协议
  • (SpringBoot)第七章:SpringBoot日志文件
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十二)Flink Table API
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)硬币问题
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级