1 工程配置
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