STM32CubeMX 配置流程
1. 选择与目标MCU对应的型号创建工程
- 正点原子STM32F407 - ZGT6
- 选择Start My Project from MCU
- 搜索与开发板型号相对应的MCU
- 选择好后 Start Project
- 待程序配置文件下载好后进入IO配置界面
2. 根据最小系统板原理图对GPIO进行配置
(1)配置程序下载接口!!!(此项必须配置,如配置有误可能导致开发板芯片锁死)**
- SWD下载接口包含:SWDIO[数据线] - PA13 SWCLK[时钟线] - PA14
- 在IO配置页面左侧System Core中找到SYS选项
- 将Debug选项由Disable修改为Serial Wire,Timebase Source 默认即可(配置好后可以看见芯片相应引脚使用)
(2)时钟配置 [低速时钟&高速时钟]
低速时钟 - 32.768KHz
高速时钟 - 8MHz
- 在左侧System Core中选择RCC配置时钟源
- 根据原理图可看出高低速时钟都是外部,故配置为Crystal/Ceramic Resonator
- IO配置完成后,在上方选择 Clock Configuration 配置时钟树 [将输入时钟调整为原理图中的参数]
- 调整分频系数,使MCU工作在最高主频率168MHz[参考下图]
- 注意:PLL Source 需要选择HSE 推荐分频系数–M:8 N:336 P:2 Q:7
- Q 主要设计USB通信时钟,需要为48MHz 如需要调整该系数,需要先使能USB功能
(3)功能GPIO配置
USART配置
- USART IO - PA9 (TX) & PA10 (RX)
- 左侧Connectivity中找到PA9 PA10 对应的USART1
- 配置 Mode 为 Asynchronous 模式 其余配置保持默认
- 在USART1 Parameter Setting 中可以调整 Baud Rate \ Word Lenth 等参数 [通常 Baud Rate 设置为 115200Bits/s]
按键IO配置 [KEY_0 - PE4 KEY_UP - PA0]
- KEY_0 & KEY_UP 均高电平有效,需要配置IO为内部输入下拉
- 将PA0 PE4 先配置为输入模式
- 鼠标右键选择IO -> Enter User Label,修改IO标签名称为KEY_0 KEY_UP
- 在左侧 System Core 选中GPIO 选项,设置 GPIO Pull-up/ pull-down [Key 高电平有效,设置为Pull-down ]
LED IO配置 [LED_0 - PE4 LED_1 - PA0]
- LED_0 & LED_1 均低电平有效,需要配置IO默认为输出上拉
- 设置 IO 为 输出模式
- 修改IO 标签(同按键标签修改)
- 在左侧 System Core 选中GPIO 选项,设置 GPIO Pull-up/ pull-down [LED 低电平有效,设置为Pull-up ]
IIC接口配置[EEPROM SCK - PB8 SDA - PB9] – IIC1
- 在Connectivity 中使能IIC1
- 可根据需求调整Speed Mode & ClockSpeed
SPI接口配置 [SPI1_CLK - PB3 SPI1_MISO - PB4 SPI1_MOSI - PB5 F-CS - PB14]
- 在Connectivity 中使能SPI1[需要修正GPIO 为PB3 PB4 PB5]
- 设置F_CS 为输出模式低电平有效[默认上拉]
3. 其他配置
TIM 定时器配置
- 确定分频系数及装载值
- PWM输出
- 定时器中断
4. 生成MDK工程
- 完全GPIO配置后,选择Project Manager
- 编辑文件名、保存路径、导出工程模板
- 右上角 Generate Code 即可生成MDK在模板路径
5. MDK内代码结构
- 如果需要二次修改配置文件,双击ioc尾缀的文件即可进入CubeMX
- Keil 工程见MDK-ARM
在CubeMX生成的MDK框架代码时,只能将代填入Private XXXXXXX 内,否则二次编辑配置文件是,新的工程可能会覆盖掉写在其他地方的代码!!!