[003] [STM32] CubeMX工具使用
# 1.1 启动界面
File:新建、导入、保存、关闭、生成工程等Window:输出窗口开启、设置软件字体;Help:软件帮助文档、检查软件更新、管理MCU固件包等功能。
对于已存在工程可以双击MX图标打开,我们一般选择基于芯片方式新建工程。
1.2 芯片/开发板选择界面

直接以芯片型号进行搜索,如STM32F103RC:
双击需要的芯片型号,进入芯片配置主界面。
1.3 配置主界面

1.3.1 引脚配置
Pinout&Configuration引脚配置界面:
- 淡黄色引脚:电源
- 卡其色引脚:Boot和复位
- 灰色引脚:GPIO引脚(处于复位状态)
- 绿色引脚:GPIO引脚(已配置)
查找引脚:
如将PA5引脚配置为推挽输出模式:
1.3.2 外设配置

System Core:用于配置GPIO、时钟源、中断系统以及系统相关的外设Analog:用于配置模/数和数/模转换外设Timers:用于配置定时器和实时时钟外设Connectivity:用于配置l2C、SPI和UART等连接外设Multimedia:用于配置l2S等音频媒体数据传输外设Computing:用于配置CRC校验外设Middleware:用于配置RTOS和GUI等中间件
1.3.2.1 配置时钟模式

由于内部时钟一般由5%的误差,一般选择旁路时钟或晶振/陶瓷振荡器。
HSE使用晶振振荡器配置示例:
1.3.2.2 配置调试接口
选中SYS后,点击debug选项可以选择仿真下载方式,选择后对应的调试引脚也会发生变换,如选择SW模式:
1.3.2.3 配置GPIO

- 初始状态下的引脚电平
- 引脚模式(输入/输出)
- 选择上/下拉电阻
- 引脚速度(低、中、高)
- 引脚名称(不设置默认为GPIOx)
1.3.3 时钟配置
Clock Configuration时钟配置界面:
- 外部低速时钟LSE:32.768kHz
- 内部低速时钟LSI:40kHz(30~60)
- 外部高速时钟HSE:4~16MHz
- 内部高速时钟HSI:8MHz
- 锁相环PLL:时钟源为
HSI/2或HSE(可选择倍频系数) - 时钟安全系统CSS:使能后,一但HSE失效,自动切换到HSI。
需要注意:CSS被激活后,会触发NMI中断,如不清楚标志位会一直卡在此中断,通过设置RCC->CIR的CSSC位清楚中断标志。通过cubemx使能后会帮我们自动配置:
void NMI_Handler(void)
{
HAL_RCC_NMI_IRQHandler();
while (1)
{
}
}
void HAL_RCC_NMI_IRQHandler(void)
{
/* Check RCC CSSF flag */
if (__HAL_RCC_GET_IT(RCC_IT_CSS))
{
/* RCC Clock Security System interrupt user callback */
HAL_RCC_CSSCallback();
/* Clear RCC CSS pending bit */
__HAL_RCC_CLEAR_IT(RCC_IT_CSS);
}
}
时钟配置步骤:
- 修改HSE为晶振频率8MHz;
- 选择HSE作为PLL时钟源;
- 选择系统时钟源为PLLCLK;
- 输入HCLK频率,并敲回车,软件自动完成配置。
1.3.4 工程配置
Project Manager工程管理界面:
1.3.4.1 工程管理

可以在help中点击以下选项,进入管理当前安装固件包界面:

注意:CubeMX工程必须在英文路径下。
1.3.4.2 代码生成设置

- 复制所有库:将整个固件包拷贝到工程目录下
- 引用参考:不拷贝文件,仅将文件路径添加到工程中(一般不选)
Backup...:当重新生成工程时,备份之前生成的文件Keep User Code...:当重新生成工程时,保存用户写的代码(一般勾选)- 设置所有引脚默认为模拟模式:可降低单片机功耗
- 断言语句:勾选后会提升程序的健壮性,但会增加代码量(一般不选)
1.3.4.3 高级设置

点击右上角GENERATE CODE生成工程:
注意:用户代码必须在USER_xxx_BEGIN和USER_xxx_END里面写,否则下次用cubemx生成时就没有了。
2 工程复制
由于不同任务只需要修改引脚分配和外设配置,因此CubeMX的工程文件不需要每次都重新建立,只需要将之前建立的工程整体复制到新的文件夹即可,步骤如下:
- 新建一个文件夹,文件夹的名称和具体的工程应用相关, 如驱动指示灯的任务,就可以将文件夹命名为
LED; - 将之前建立的一个工程文件夹中的内容整体复制到新文件夹中,并删除其中的MDK-ARM文件夹;
- 修改CubeMX生成的.ioc文件名,和新的工程名称一致,如
LED.ioc; - 点击重命名的IOC文件,启动CubeMX软件。按照新任务的要求完成引脚分配和外设配置后,重新生成MDK工程;
- 修改MDK工程的相关设置:如仿真器的选择等;
- 添加用户代码,并完成程序的编译、下载和调试等后续操作。
3 总结
- 分析了cubemx软件各界面功能,需要注意工程路径必须为英文路径,同时代码要在user_xx_begin和user_xx_end间填写,否则重新生成工程后就没了。
- 可以复制之前生成好的cubemx工程,然后将MDK-ARM文件夹删除,按应用功能修改名称后,可以再先前配置的基础上进行修改。
参考:成电应电科协
END
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)