1. 串口通信基础:从电平转换到协议解析
串口通信是嵌入式系统中最基础也是最常用的通信方式之一。刚开始接触STM32的时候,我也曾经被各种电平标准和协议搞得头晕眼花。今天我就用最直白的方式,带你彻底搞懂串口通信的那些事儿。
1.1 TTL电平和RS232电平的本质区别
很多人刚开始都会困惑:为什么有了TTL电平还要搞个RS232?其实这就像两个人说话,一个用正常音量(TTL),一个用大喊大叫(RS232),为的是在不同环境下都能听清楚。
TTL电平就是我们单片机直接输出的信号:
- 逻辑1:3.3V或5V(取决于供电电压)
- 逻辑0:0V
- 传输距离:一般不超过1米
而RS232电平是为了远距离传输设计的:
- 逻辑1:-3V到-15V
- 逻辑0:+3V到+15V
- 传输距离:可以达到15米左右
我刚开始做项目的时候,就犯过直接把TTL电平当RS232用的错误。当时用STM32的串口直接连接电脑的DB9接口,结果数据完全乱套。后来才知道,电脑的串口是RS232电平,必须用电平转换芯片。
1.2 常用的电平转换方案
现在常用的电平转换芯片有MAX232、SP3232、CH340等。以CH340为例,这个芯片真的很实用:
- 支持USB 2.0标准,最高传输速率12Mbps
- 内置晶振,不需要外部晶振就能工作
- 自动波特率检测,兼容性强
我在实际项目中经常用CH340做USB转串口,接线非常简单:
// CH340与STM32的典型连接
CH340_TX --- STM32_RX
CH340_RX --- STM32_TX
CH340_GND --- STM32_GND
注意:一定要共地!我曾经因为忘记接GND,调试了半天都收不到数据。
2. 硬件连接实战:从USB转串口到双机通信
2.1 USB转串口模块的正确使用
现在很多笔记本电脑都没有原生串口了,USB转串口模块就成了必备工具。市面上常见的模块有CH340、CP2102、FT232等,我用下来觉得CH340性价比最高。
使用时的注意事项:
- 驱动安装:不同芯片需要不同的驱动程序,下载时一定要找官方版本
- 电压匹配:有的模块支持3.3V和5V切换,要根据STM32的工作电压选择
- 线序连接:TX接RX,RX接TX,千万不要接反了
我曾经接反过TX和RX,结果发现能发送数据但不能接收,排查了好久才找到问题。
2.2 双机文件传输实验
这个实验很有意思,可以用两台电脑通过串口互传文件。具体步骤:
硬件连接:
电脑A USB转TTL模块
TXD --- RXD 电脑B的USB转TTL模块
RXD --- TXD
3.3V --- 3.3V
GND --- GND
软件设置:
- 使用串口助手工具(如XCOM、SSCOM)
- 设置相同的波特率,一般用115200
- 选择文件传输功能
传输时间估算: 文件大小:346KB = 34610248 = 2,834,432位 波特率:115200 bps 理论时间:2,834,432 / 115,200 ≈ 24.6秒
实际测试下来大约25秒,多出来的时间是协议开销和校验时间。
重要发现: 如果只接TX和RX,不接GND,传输会极不稳定。这是因为没有共同的参考地平面,电平判断会出错。所以记住:串口通信必须接GND!
3. STM32CubeMX配置:从零搭建串口项目
3.1 环境搭建和工程创建
我用的是STM32F103C8T6(蓝桥杯常用芯片),STM32CubeMX版本是6.5.0。新建工程的步骤:
- 选择芯片型号:STM32F103C8Tx
- 配置RCC:HSE选


1万+

被折叠的 条评论
为什么被折叠?



