1. 项目概述
最近在调试STM32的串口通信功能时,发现很多新手都会卡在基础配置环节。今天我就把整个串口通信的实现过程拆解开来,从寄存器配置到中断处理,手把手带你打通STM32的USART外设开发。这个教程特别适合刚接触STM32的硬件工程师和嵌入式爱好者,跟着操作一遍就能掌握串口收发的核心要领。
串口通信作为嵌入式系统最基础的调试手段,几乎出现在所有STM32项目中。无论是打印调试日志还是与传感器模块通信,USART外设都是我们必须熟练掌握的硬件资源。下面我会结合CubeMX配置和寄存器级操作两种方式,详细说明如何实现稳定可靠的串口通信。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件设计与环境搭建
2.1 硬件连接要点
STM32的USART接口通常使用PA9(TX)和PA10(RX)引脚,连接USB转TTL模块时需要注意:
- 开发板的TX引脚接转换器的RX
- 开发板的RX引脚接转换器的TX
- 共地连接必不可少
重要提示:务必确认电压电平匹配,3.3V系统不能直接连接5V设备,否则可能损坏芯片。建议使用带电平转换的CH340G模块。
2.2 开发环境准备
推荐使用以下工具组合:
- IDE:Keil MDK或STM32CubeIDE
- 配置工具:STM32CubeMX
- 调试工具:ST-Link V2仿真器
- 终端软件:Putty或SecureCRT
在CubeMX中创建工程时,需要特别注意时钟树的配置。以STM32F103C8T6为例,外部8MHz晶振经过PLL倍频到72MHz系统时钟,此时USART的时钟源应选择PCLK2(APB2总线时钟)。
3. 串口配置详解
3.1 CubeMX图形化配置
- 在Pinout界面启用USART1
- 配置Mode为Asynchronous
- 参数设置:
- Baud Rate:115200
- Word Length:8bit
- Stop Bits:1
- Parity:None
- HW Flow Control:Disable
生成代码时会自动创建huart1句柄,包含所有配置参数。这种方式的优点是快速可靠,特别适合项目初期验证。
3.2 寄存器级手动配置
如果想深入理解底层原理,可以直接操作寄存器:
c复制
