竹笋

注册

 

发新话题 回复该主题

既然想学习STM32,那么Cube系列软 [复制链接]

1#

既然想学习STM32,那么Cube系列软件是一定要精通的

尝试使用Cube进行一些开发学习,这里对此做一个梗概,先有一个全面的了解。

Cube全家桶

曾几何时,ST刚推出CubeMX的时候,自动生成的外设初始化代码都会有这样那样的错误,而如今,随着软件的迭代升级,Cube生态也越来越完善,并且使用也越来越方便,ST推出的STM32CubeEcosystem提供了免费整套的开发软件工具和嵌入式软件包,其中可以从芯片的外设配置,程序开发,程序下载以及系统监视一系列的功能。如下图所示;

·STM32CubeMX几乎STM32的设备都可以使用这个工具初始化配置代码,这个是基于Java开发的图形化界面配置软件,可以为Cortex-M自动生成需要配置的C代码,还可以为支持Linux系统的Cortex-A内核生成设备树。

·STM32CubeIDE这是一款ST推出的免费的集成开发环境,基于Eclipse和GNUC/C++等开源工具链,可以编译调试代码,并且官方也将STM32CubeMX集成到IDE中,这样整个软件的配置和开发变得浑然一体,便捷非常。

·STM32CubeProgrammer软件编程工具,支持(JTAG,SWD,UART,USBDFU,I2C,SPI,CAN)等方式对设备和外部存储器进行读写。

·STM32CubeMonitor系列工具。强大的监视工具可帮助开发人员实时微调其应用程序的行为和性能,这个目前还没有尝试,暂且先相信官方的自夸吧。

所以使用以上的STCube全家桶进行STM32的软件开发,还是有不少坑要在实践过程中慢慢爬,整体的一个流程基本如下;

·第一步:使用CubeMX初始化相应的芯片外设功能等等;

·第二步:使用CubeIDE进行代码编辑调试等操作,当然,如果你喜欢也可以使用IAR,Keil,或者VSCode,这个完全出自个人喜好和习惯,但是据说CubeIDE里集成了CubeMX,这个难道不香吗?加上如果想使用gcc编译器,那也省去了很多配置的麻烦;

·第三步:使用CubeProgrammer进行程序烧录,主要是支持的协议多啊,还可以吧,感觉是吹的挺厉害的;

·第四步:以后可能会出更多的功能插件,目前感觉不是十分必要。

CubeMX

STM32CubeMX的安装,十分简单,不过下载需要提交邮箱,基本根据系统提示就可以完成,另外,STM32CubeMX目前自动生成的代码支持官方的HAL库和LL库,像以前笔者常用的标准外设库就已经被ST抛弃了,最新的STM32F7已经不支持标准外设库了。同时,CubeMX初始化生成C代码项目,最终的工程可以符合IAR,KeilMDK和GCC,所以这里相对来说比较方便,不用对着手册撸寄存器了,也不用对着官方标准外设库demo进行移植,真的是哪里不会点哪里。

·HAL库的封装相对来说好一点,但是代码读起来相对比较冗杂,通用性和移植性好,符合软件工程的设计思想,那么会牺牲一点效率了。

·LL库会再底层一点,这几个的选择还是看个人喜好和团队的需要了。

CubeIDE

分享 转发
TOP
发新话题 回复该主题