CubeMX简介
传统的单片机开发时,需要针对片上外设做各种初始化的工作,相当麻烦。
CubeMX是ST公司出品的一款图形化代码生成工具,通过图形化界面,可以非常直观的配置好各种片上外设,时钟,中断,DMA等等各种设备的参数,然后CubeMX可以直接生成初始化代码,使得开发人员可以将更多的精力放在核心代码的开发上。
生成的代码选择性适配IAR,KEIL,以及ST自家的STM32CubeIDE(免费)


初始界面
打开软件后就是这个界面



最左边是之前打开过的工程,中间是生成新项目的方式,右边是软件安装选项。
按箭头说明一下:
1:通过选择一款MCU来生成工程,一般用这个。
2:通过选择一款ST的开发板来生成工程,对于手里有ST开发板,想要学习开发板例程的,可以选择这个。
3:通过实例来生成工程,这个实例就是开发板已经实现的例程的名字,比如我想学习SPI接口,那么就可以通过这个打开,然后再选择ST开发板,和第2项是一回事。
4:检查更新
5:安装和删除软件包。每一款单片机都是需要安装对应的支持包才行的,可以从这里安装,删除或更新软件包。


生成工程
下面我们生成一个计算CRC的工程,用到的片子是STM32G030C8T6,配置PA9和PA10为串口。开启串口中断。外部晶振8MHz。将来用KEIL做软件开发。
点击箭头1,来到MCU型号选择界面



在1处输入STM32G030C8T6,前面的STM32也可以不输入。随着我们的输入,右边窗口会逐渐缩小选择范围,如下图,注意键盘要在英文输入状态,中文状态是不行的。



箭头2所指的这个芯片,就是我们所要选择的。
同时还给出了参考单价,芯片封装,FLASH和RAM容量,IO口数量和最高频率等信息,以方便我们选型
确定好芯片以后,双击它,就来到下一个界面。


功能配置界面



它包含4个选项卡,下面我们来一一介绍。


1 引脚和配置
这个界面最常用,左边是配置MCU内核,片上外设,中间件的。
右边可以配置IO口,和引脚复用功能
下面我们点开System Core,并点击SYS,并在新出现的窗口中勾选第1项Serial Wire,的意思是启用SWD调试接口,即可以通过仿真器下载和调试程序。



点击Connectivity,点击USART1,Mode选择Asynchronous,意思是异步串口。其他保持默认。下面的窗口中,通讯速度按需要设置,默认是115200bps,数据位8,奇偶校验无,1个停止位



此时可以看到窗口右边,相关引脚已经变为绿色。可以看到PA9为TX引脚,PA10为RX引脚。
如果PA9必须做别的功能使用,那还有备用引脚可以选择,方法是按住Ctrl,再鼠标左键长按PA9,此时备用引脚会开始闪烁,本芯片的备用引脚只有一个:PB6
左键点击PB6,选择USART1_TX即可将该引脚变为TX功能



配置中断
点击红箭头所指的NVIC Settings



在方框内勾选,即可开启串口中断



开启CRC模块
CRC功能在Computing中配置,但是如果不知道呢,该怎么快速找到呢?
在箭头所指处输入CRC,并回车,注意一定要在英文输入状态,左下就会出现展开CRC所属的Computing的配置项



在下方箭头处勾选,以激活CRC模块



下面的参数按需要设置。
可以设置长度,多项式,初始值,输入是否反转,输出是否反转等。
设置好以后,直接将要计算的数组发给CRC计算单元也就是使用HAL_CRC_Calculate()这个函数,返回值就是我们要计算的CRC值,方便快捷。
有硬件可用就不需要写函数,速度还快,还省空间。


时钟配置
在RCC中选择HSE为外部时钟,即Crystal,意思是外部晶振,下面这两个脚就是晶振引脚,会变绿。



点击下图红箭头,进行时钟配置



选择下图的时钟路线



在箭头处输入64,回车,意思是使用64M的主频,相关的倍频分频参数软件会自动帮我们计算好。

生成代码



在1处输入项目名称
在2处选择工程路径
在3处选择将来要开发的软件,我用Keil所以选择MDK
在Code Generator选项中按下图设置



最后,点击右上角的GENERATE CODE,生成工程,



弹出下面的界面,就表示工程生成好了,点击Open Project就可以打开工程,开始开发了。