不知道大家是如何开发STM32的,我之前学STM32是从正点原子、野火的教程开始的,都是先配好一个万能例程,之后写代码就复制一份在其基础上开发;每次都要花时间配置初始化等等;
之前就听说过ST公司推出的CubeMx,但是一直没有尝试,这次疫情在家也没操弄STM32系列,借着重新熟悉、学习的机会,换种开发方式!
试过CubeMx后感觉体验不错,初始化之类的通过软件中的图形化指引就可以完成,可以生成对应于Keil IDE的C语言代码;ST公司也在致力于抽象层的Hal库的开发与推广(有Arduino内感觉了),自己体验还不够久,暂时做个记录
1. STM32Cube overview
可以看出哈,STM32CubeMx不仅包括CubeMx这个软件,也包括了背后的抽象层Hal库和更底层的(LL)层,中间组件和例程
注:以上的文档可以在CubeMx软件中按F1 键调出
2. 创建工程和初始化C代码
如图是打开CubeMx后的初始化界面
1.创建新工程
既可选择File->New project,也可以从图中选择
2.选择自己要开发的芯片
可以看到选择起来非常方便,这里以F103ZETx为例:
也可以在其中下载芯片文档等
然后点击Start Project建立工程
3. 来到了图形化初始化的界面,根据自己的需求,设置引脚模式及参数
比如我这里设置了PA9,PA10作为USART_1的引脚,PA8作为Led1的引脚,只要选中相应的选项栏即可进行设置,注意 看那个小箭头,来拓展窗口
配置后在System review可以查看使用的外设
Clock Configuration这里我选了默认
4.来到Project Manager
选择工程名和所在的地址,因为我用keil 5开发,所以选择了MDK-ARM;
在Mcu and Firmware Package,直接按默认来就好了,如果没有相应的包,会自动下载,非常快
Code generator、Advanced Settings也可以根据自己的需要进行探索,设置
最后点击Generate CODE
下载所需的Package中…
选择打开project即可用keil打开已经完成初始化的工程文件:
Okay,没毛病。
总结下:
使用CubeMx的图形化初始操作,帮助我们更快的创建初始化工程,后续即可在此基础上创建自己的代码;
使用CubeMx使配置迁移、代码初始化、迁移等变得更加方便,也使开发不同板子配置初始化文件变得异常简单!
还有很多深入的功能我还没有体验,但是在帮助文档中提供了很多例程、使用帮助;也列出了使用CubeMx的局限,大家可以多多看下文档
一些其他的参考: