本专栏主要介绍使用STM32Cube生态,进行STM32系列MCU的开发。众所周知的STM32 HAL/LL库、STM32CubeMX,其实就是STM32Cube计划的产物。
专栏示例代码使用STM32CubeIDE软件展示,读者也可以在Keil MDK-ARM实现示例功能。
STM32CubeIDE可以替代大家熟知的Keil MDK-ARM,虽然CubeIDE只能用于STM32开发,但CubeIDE完全免费,不涉及版权问题,所以越来越受企业青睐。而且CubeIDE是基于eclipse的,版本更新、交互性更好,有更加方便的代码体验。
当然,使用Keil MDK-ARM学习本教程也是一样的。两个软件的工程结构类似,可以很方便的移植代码。
Cube生态简介
STM32Cube官方介绍的摘抄如下:
STM32Cube生态系统是面向STM32微控制器和微处理器的完整软件解决方案。它既适用于为STM32寻找完整、免费开发环境的用户,也适用于已经拥有集成开发环境(包括Keil、iAR、VScoed等主流开发环境)的用户,他们可以在其中轻松集成STM32CubeMX、STM32CubeProgrammer或STM32CubeMonitor等各种组件。
简而言之,什么是STM32Cube?
STM32Cube是软件工具和嵌入式软件库的组合:
- 全套PC软件工具,可满足完整项目开发周期的所有需求
- 在STM32微控制器和微处理器上运行的嵌入式软件模块,可提供各种功能(从MCU组件驱动程序到面向应用的更高级功能)。
在STM32Cube生态系统内部
STM32Cube软件工具套件为开发者提供全方位的支持:
- STM32CubeMX是一款适用于任何STM32器件的配置工具。这款简单易用的图形用户界面为Cortex-M内核生成初始化C代码,并为Cortex-A内核生成Linux器件树源代码。
- STM32CubeIDE是一种集成开发环境。该IDE基于Eclipse或GNU C/C++工具链等开源解决方案,包括编译报告功能和高级调试功能。它还额外集成了生态系统中其他工具才有的功能,比如来自STM32CubeMX的硬件和软件初始化和代码生成功能。
- STM32CubeCLT是一个命令行开发工具集,支持代码编译、板件编程和调试功能。
- STM32CubeProgrammer是一款编程工具。它提供了一种易于使用且高效的环境,可以通过各种可用通信介质(JTAG、SWD、UART、USB DFU、I²C、SPI、CAN等)读写和验证器件及外部存储器。
- STM32CubeMonitor系列工具。强大的监视工具可帮助开发者实时微调应用程序的行为和性能。
软件下载
Cube系列软件完全免费,直接在官网下载,无需破解。
- 点击CubeMX 的下载链接,稍等一会,出现”获取软件“后点击。
使用Windows开发,在STM32CubeMX-Win一行后面,点击获取最新版本。
同意协议并登录,即可开始下载。
- 点击CubeIDE的下载链接,操作与CubeMX类似
- 下载Oracle版本的Java
CubeMX需要用到Oracle版本的Java JRE
访问Java 官 网:https://www.java.com/zh-CN/download/manual.jsp
下载并安装圈中的版本
软件安装
安装过程很方便,这里说一下注意事项。
- 先安装Java环境、再安装CubeMX和CubeIDE。
- 下载过程可以自定义安装到路径,选择一个你以后可以找到的位置。建议将两个软件安装到D盘的同一目录下,且安装路径不要出现中文!
- 新建一个文件夹,命名为“STM32Cube”
- 比如直接安装到D盘
- 安装路径就是:"D:STM32Cube/CubeMX"和"D:STM32Cube/CubeIDE"
3. CubeIDE安装时会,弹出安装仿真驱动器,需要全部勾选安装。
软件配置
CubeMX配置
1、安装MCU固件包
打开CubeMX,点击右上角的"Help"->"Connection & Updates",如下图:
修改路径为:"D:\STM32Cube\Repository"。
然后,为了加快启动速度,按照下图中的选项更改为:手动更新并且启动时不自动刷新,以后过一段时间记得手动刷新一下,确保软件版本最新。
2、下载软件包
点击右上角的"Help"->"Manage embedded software packages"
往下滑,找到你使用开发板上MCU的系列,比如我使用的是"STM32F4" ,勾选最新版本并点击右下角“Install”安装。
然后会弹出对话框,同意许可协议,然后点击Finish,完成后点击"OK"。
下载成功这里会变绿
这个里面还可以下载其他软件包,可以看到软件包种类很多,也说明了其生态的丰富性。
必要配置已完成,后面的示例中会介绍一些使用和配置方法,如果想具体学习CubeMX的各种按键作用,可以查看官方文件。
比如:
CubeIDE配置
1、工作空间设置
- 首先,新建一个目录,用来存放CubeIDE的工程文件和工作空间,如“D:\STM32Demo”。
- 然后,打开CubeIDE,选择工作空间的位置为“D:\STM32Demo”。点击“Launch”运行。
2、软件库设置
- 点击主菜单选项“Window”→“Perferences”,展开“STM32Cube\Firmware Updater”。将Repository的地址设置为和CubeMX相同,这样就可以共用软件包了。
- 为了加快启动速度,按照下图中的选项更改为:手动更新并且启动时不自动刷新,以后过一段时间记得手动刷新一下,确保软件版本最新。
- 修改完成后点击“Apply and Close”。
3、使用偏好配置
(1)软件启动插件设置,只开启必要项,以提高启动速度。
- 点击主菜单选项“Window”→“Perferences”,在左上角搜索框中,搜索“Startup”。做如下配置:
- Workspace栏中,可以集中管理各工作空间。
- 搜索框,输入“fold”,点开Folding栏,做如下配置,自动折叠次要代码,提高阅读效率。
- 搜索框,搜索“theme”可以配置主题,搜索“Syntax Coloring”,可以配置字体颜色。
- 完成后点击“Apply”保存。
- 还有许多自定义配置,读者可自行探索。
(2)自动补全代码
- 在“Window”→“Perferences”中搜索“Advanced ”
按下图配置:
- 在“Window”→“Perferences”中搜索“keys ” ,将“Scheme”配置为和VScode相同的快捷键配置。
在下面一栏中,搜索“Content Assist (Parsing-based Proposals)”,可以查看或更改补全代码的快捷键。
- 完成后点击“Apply and Close”关闭窗口。
(3)构建输出文件设置
在“Project”→“Perferences”中搜索“settings”。
在右侧,选择“Tool Settings/MCU Post Build output”,可根据需求选择输出的文件,这些文件可以用其他软件的下载方式下载。如,通过CubeProgrammer软件利用串口下载。
必要配置已完成,后面的示例中会介绍一些使用和配置方法,如果想具体学习CubeIDE的各种按键作用,可以查看官方文件。
比如: