换种方式开发STM32? STM32 CubeMx使用

不知道大家是如何开发STM32的,我之前学STM32是从正点原子、野火的教程开始的,都是先配好一个万能例程,之后写代码就复制一份在其基础上开发;每次都要花时间配置初始化等等

之前就听说过ST公司推出的CubeMx,但是一直没有尝试,这次疫情在家也没操弄STM32系列,借着重新熟悉、学习的机会,换种开发方式!

试过CubeMx后感觉体验不错,初始化之类的通过软件中的图形化指引就可以完成,可以生成对应于Keil IDE的C语言代码;ST公司也在致力于抽象层的Hal库的开发与推广(有Arduino内感觉了),自己体验还不够久,暂时做个记录

1. STM32Cube overview

换种方式开发STM32? STM32 CubeMx使用可以看出哈,STM32CubeMx不仅包括CubeMx这个软件,也包括了背后的抽象层Hal库和更底层的(LL)层,中间组件和例程

注:以上的文档可以在CubeMx软件中按F1 键调出

2. 创建工程和初始化C代码

如图是打开CubeMx后的初始化界面
换种方式开发STM32? STM32 CubeMx使用

1.创建新工程

既可选择File->New project,也可以从图中选择

换种方式开发STM32? STM32 CubeMx使用
2.选择自己要开发的芯片

可以看到选择起来非常方便,这里以F103ZETx为例:
换种方式开发STM32? STM32 CubeMx使用
也可以在其中下载芯片文档等

换种方式开发STM32? STM32 CubeMx使用然后点击Start Project建立工程

3. 来到了图形化初始化的界面,根据自己的需求,设置引脚模式及参数

比如我这里设置了PA9,PA10作为USART_1的引脚,PA8作为Led1的引脚,只要选中相应的选项栏即可进行设置,注意 看那个小箭头,来拓展窗口

换种方式开发STM32? STM32 CubeMx使用配置后在System review可以查看使用的外设
换种方式开发STM32? STM32 CubeMx使用

Clock Configuration这里我选了默认
换种方式开发STM32? STM32 CubeMx使用
4.来到Project Manager

选择工程名和所在的地址,因为我用keil 5开发,所以选择了MDK-ARM;
Mcu and Firmware Package,直接按默认来就好了,如果没有相应的包,会自动下载,非常快
换种方式开发STM32? STM32 CubeMx使用

Code generator、Advanced Settings也可以根据自己的需要进行探索,设置
换种方式开发STM32? STM32 CubeMx使用
最后点击Generate CODE

下载所需的Package中…

换种方式开发STM32? STM32 CubeMx使用选择打开project即可用keil打开已经完成初始化的工程文件:
换种方式开发STM32? STM32 CubeMx使用
换种方式开发STM32? STM32 CubeMx使用

Okay,没毛病。
换种方式开发STM32? STM32 CubeMx使用

总结下:

使用CubeMx的图形化初始操作,帮助我们更快的创建初始化工程,后续即可在此基础上创建自己的代码;
使用CubeMx使配置迁移、代码初始化、迁移等变得更加方便,也使开发不同板子配置初始化文件变得异常简单!

还有很多深入的功能我还没有体验,但是在帮助文档中提供了很多例程、使用帮助;也列出了使用CubeMx的局限,大家可以多多看下文档

换种方式开发STM32? STM32 CubeMx使用
一些其他的参考:

  1. STM32CubeMX入门教程(一).

  2. STM32CubeMX系列教程 .