这一章在干嘛?

全面学习 STM32CubeMX:从安装、新建工程、配置时钟/GPIO/USART/SPI/TIM,到生成 MDK 工程和使用技巧。掌握后能 5 分钟搭起一个完整外设工程。

10.1 STM32CubeMX 的作用

10.2 安装 STM32CubeMX

10.3 使用 STM32CubeMX 新建工程

10.4 STM32CubeMX 新建工程使用建议

10.1 STM32CubeMX 的作用

CubeMX 是一个图形化配置工具,帮你:

  • 选择芯片 → 引脚分配可视化;
  • 配置外设参数 → 时钟树自动计算;
  • 生成初始化 C 代码 → MDK / IAR / GCC / Makefile 多平台。

原书图 10.1.1:CubeMX 主界面原书图 10.1.1:CubeMX 主界面

10.2 安装 STM32CubeMX

  1. 到 st.com 下载最新版 CubeMX 安装包;
  2. 安装前需 Java 8+(Win10+ 自带);
  3. 一路默认安装;
  4. 首次启动会下载 F1/F4/F7/H7 等芯片包(可离线包导入)。

10.3 使用 STM32CubeMX 新建工程

10.3.1 新建工程

File → New Project → 搜 STM32F407IG → 选 LQFP176 封装 → Start Project。

10.3.2 引脚分配

  • 搜「PA0」在 Pinout 视图里点选 → GPIO_Output / GPIO_EXTI0;
  • 双击 USART1 → Mode = Asynchronous → 引脚自动分配到 PA9/PA10。

10.3.3 时钟配置

Clock Configuration 标签页:

  • Input frequency = 8 MHz(HSE)
  • PLL Source Mux = HSE
  • M = 4,N = 168,/2 = 168 MHz
  • SYSCLK = 168 MHz,AHB = 168,APB1 = 84 MHz(最高 84),APB2 = 84 MHz(最高 84)
  • 注意 CubeMX 会用蓝色字标出超出范围。

原书图 10.3.3.1:168 MHz 时钟树配置原书图 10.3.3.1:168 MHz 时钟树配置

10.3.4 外设参数

USART1 Configuration → Baud Rate 115200 → Word Length 8 → Parity None → Stop Bits 1 → Data Direction Receive and Transmit。

10.3.5 生成代码

Project Manager →

  • Project Name:MyProject
  • Project Location:英文路径
  • Toolchain / IDE:MDK-ARM V5

Code Generator → 勾选

  • Generate peripheral initialization as a pair of .c/.h files per peripheral
  • Keep User Code when re-generating
  • Delete previously generated files when not re-generated

GENERATE CODE → 提示「Open Folder」打开工程。

10.4 STM32CubeMX 新建工程使用建议

用户代码写在 USER CODE BEGIN / END 之间,再次生成 CubeMX 代码不会被覆盖。

CubeMX 不能写业务逻辑,它只生成初始化代码。中断回调、while 循环里的应用层代码还得手写。

原书图 10.4.1:CUBE MX 用户代码块示意原书图 10.4.1:CUBE MX 用户代码块示意