1. 项目背景与核心目标
在嵌入式开发领域,串口通信是最基础也最实用的调试手段之一。通过USART(Universal Synchronous/Asynchronous Receiver/Transmitter)实现STM32与上位机的数据交互,是每个嵌入式工程师必须掌握的技能。这个实验的核心目标是通过串口指令控制STM32F407开发板上的LED灯状态,实现以下功能:
- 电脑端发送特定指令(如"LED_ON"、"LED_OFF")
- STM32F407接收并解析指令
- 根据指令内容控制指定GPIO引脚输出高低电平
- LED灯状态随指令实时变化
提示:USART是STM32芯片内置的串行通信接口,支持全双工异步通信,在115200bps等常用波特率下稳定可靠。与UART相比,USART还支持同步模式(需要时钟信号),但在大多数应用中我们使用异步模式。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件准备与电路连接
2.1 所需硬件组件
- STM32F407开发板(如正点原子探索者、野火霸道等)
- USB转TTL模块(如CH340、CP2102等)
- LED灯及限流电阻(开发板通常已集成)
- 杜邦线若干
- 电脑(安装串口调试助手)
2.2 电路连接示意图
code复制[PC USB口] <=USB线=> [USB转TTL模块] <=杜邦线=> [STM32F407]
│
├── TXD 接 STM32的PA10(USART1_RX)
├── RXD 接 STM32的PA9(USART1_TX)
└── GND 共地
注意:TTL模块的TXD应接MCU的RXD,RXD接MCU的TXD,这是常见的交叉接法错误点。如果连接后无法通信,首先检查这两根线是否接反。
2.3 STM32F407的USART1引脚分配
STM32F407有多个USART接口,本实验使用USART1,其默认引脚为:
- PA9:USART1_TX(发送数据)
- PA10:USART1_RX(接收数据)
在CubeMX中配置时,这些引脚会自动映射到USART1功能。
3. 开发环境搭建
3.1 软件工具准备
-
IDE选择:
- Keil MDK-ARM(需安装STM32F4支持包)
- STM32CubeIDE(免费,推荐初学者使用)
- IAR Embedded Workbench
-
辅助工具:
- STM32CubeMX(图形化配置工具)
- 串口调试助手(如XCOM、SSCOM、Putty等)
- ST-Link/V2调试器驱动
3.2 STM32CubeMX工程配置
- 新建工程,选择STM32F407xx系列芯片
- 配置时钟树:
- HSE选择外部晶振(通常8MHz)
- 系统时钟配置为168MHz
- USART1时钟使能
- USART1配置:
