文章目录
一、开发准备
1、硬件准备
- STM32F407VET6开发板(核心为STM32F407系列芯片)
- ST-Link或J-Link仿真器
- 网线、串口转USB模块(如CP2102)
- 杜邦线及其他外设
2、软件准备
- STM32CubeMX(版本可选最新,如6.9.2)
- Keil MDK或者STM32CubeIDE
- STM32F4固件库(STM32CubeF4,安装网站如下:Arm Keil | Keil STM32F4xx_DFP)
以上工具可以在ST官网免费获取。
二、STM32CubeMX工程配置步骤
打开STM32CubeMX后,按照如下流程搭建:
1、创建新工程
打开CubeMX软件,选择
ACCESS TO MCU SELECTOR
在搜索框输入芯片型号
STM32F407VET6
,可能会安装必要的软件库,默认安装即可
双击对应芯片型号进入芯片配置界面。
三、外设配置步骤
1)调试接口(SWD)配置
2)时钟配置
根据硬件原理图连接将外部高速时钟和低速时钟打开
切换到Clock Configuration标签页,配置时钟树
推荐STM32F407时钟配置为168MHz主频:
- 选择
HSE
为晶振源(8MHz),因为外部晶振是8M,所以这里设置为8MHZ - PLL设置:PLL_M=8, PLL_N=336, PLL_P=2(网口的时钟通过外部晶振单独提供)
- 选择
CubeMX会自动计算并配置出最佳时钟方案,确保无误差提示后应用配置即可。
3)串口(USART)配置
以配置USART1为例:
在芯片引脚图上找到
USART1
设置为异步模式(Asynchronous)
根据硬件连接,设置GPIO引脚:
PA9
为USART1_TX
PA10
为USART1_RX
配置波特率,如
115200 bits/s
,数据位8,停止位1,无奇偶校验。
打开串口1接收中断
4)IO口配置(GPIO)
在GPIO视图中选择所需的IO口,假设需要配置:
PE13-PE15
四个LED灯IO为输出模式,推挽输出模式,上拉,默认高电平。
若配置输入,按键
PE10-PE12
,则配置为输入模式,带内部上拉。
具体步骤:
- 点击对应GPIO口,设置为Output(输出)或Input(输入)模式。
- 配置GPIO输出速度(建议:Medium),根据需求选择推挽或开漏模式。
5)以太网接口(Ethernet)配置
具体网口实现参考文章CubeMX配置STM32VET6实现网口通信(无操作系统版)
STM32F407内置MAC,需要外部PHY芯片(如DP83848或LAN8720A):
在Connectivity中打开
ETH
选择模式为
RMII模式
或MII模式
(根据硬件PHY芯片确定,一般使用RMII)。ETH相关引脚一般自动配置完成,请根据实际硬件设计即可。
具体网口实现参考文章CubeMX配置STM32VET6实现网口通信(无操作系统版)
6)定时器(Timer)配置
以基础定时器TIM3为例:
- 打开
Timers
选项,选择TIM3
: - 配置为
Internal Clock
模式。 - 设置定时器预分频系数(Prescaler)和自动重装载值(ARR)以实现特定定时周期。如下设置为1ms:
项目 | 配置示例 | 说明 |
---|---|---|
时钟频率 | 84MHz | APB1总线定时器时钟频率 |
预分频值 | 84 - 1 | (84MHz/(83+1)=1000KHz) |
ARR值 | 1000 - 1 | (1000KHz/1000=1000Hz)即1毫秒 |
打开定时器2全局中断:
四、工程生成及代码开发
工程生成设置
在
Project Manager
页配置:工程路径、名称,选择开发工具如Keil MDK或CubeIDE
Toolchain/IDE选择为MDK-ARM或CubeIDE(按个人使用工具而定)
勾选
Generate peripheral initialization as a pair of '.c/.h' files per peripheral
工程高级设置:
点击
GENERATE CODE
生成工程文件,用Keil打开代码工程。
五、程序烧录与调试
- 使用Keil或CubeIDE编译代码,无错误后连接仿真器ST-Link/J-Link。
- 下载代码到开发板,打开串口监视软件(如串口助手)观察USART输出。
- 使用网络工具(如ping)验证以太网连接与配置。
- 检查LED灯和按键功能,确保定时器和IO正常。