0
收藏
微博
微信
复制链接

UART接线看起来没错,为什么一直乱码甚至没数据?先分清TTL、RS-232和共地

2026-09-23 10:15
12

UART接线看起来没错,为什么一直乱码甚至没数据?先分清TTL、RS-232和共地

做板级调试时,UART通常是最常用的接口之一。

TX接RX、RX接TX,波特率也设成115200,看起来都没问题。

但电脑就是收不到数据,或者满屏乱码。

这时候很多小白会一直改软件参数。其实UART不通,首先应该确认的不是代码,而是你两边接的到底是不是同一种电气接口。

UART、TTL串口、RS-232,不是完全一回事

UART本质上描述的是一种异步串行通信方式:起始位、数据位、停止位这些规则怎么组织。

而TTL/CMOS串口说的是芯片引脚上的电压,例如0V和3.3V。

RS-232又是另一套电气标准,它的线缆侧通常使用正负电压,而且逻辑还会反相。

所以MCU的3.3V UART引脚,不能因为“也是串口”,就直接接到传统RS-232接口上。

图1:RS-232使用正、负电压表示逻辑状态,和MCU常见的0~3.3V CMOS电平不是同一种接口。

为什么很多USB转串口能直接接MCU?

因为常见的USB转TTL模块,输出侧就是3.3V或5V逻辑电平,可以和MCU UART直接连接。

但如果你拿的是USB转RS-232模块,模块外侧已经通过收发器变成RS-232电平,这时候就不能直接进MCU。

真正的RS-232接口通常要通过MAX3232这类收发器,把MCU的TTL/CMOS电平转换成RS-232线缆电平,再在接收端转换回来。

图2:MCU UART和RS-232接口之间通常需要专门的收发器完成电平转换和逻辑反相。

还有一个特别常见的坑:没有共地

TTL UART是单端信号。接收端判断高低电平时,是拿RX电压和自己的GND做比较。

如果两块板只有TX、RX连接,却没有一个可靠的公共参考地,那么接收端看到的电压参考可能一直在漂。

短距离桌面测试时有时“碰巧能用”,换一个电源、换一根线,马上开始乱码。

所以板级TTL UART通常至少要有TX、RX和GND三个连接。

3.3V和5V UART也不能想当然

5V设备发出的高电平可能接近5V。

如果3.3V MCU的RX引脚不是5V tolerant,长期直接输入可能超出绝对最大额定值。

反过来,3.3V TX接5V器件时,也要确认对方输入高电平门限。很多5V CMOS器件并不保证3.3V一定能被识别为高电平。

所以最稳妥的方法不是凭经验,而是查两边datasheet的VIH、VIL和输入耐压。

图3:真实RS-232波形会跨过0V正负摆动,和普通3.3V UART波形非常容易区分。

一直乱码,再按这个顺序查

第一,确认TX和RX有没有接反。

第二,示波器看空闲电平和实际摆幅,确认到底是3.3V TTL、5V TTL还是正负电压的RS-232。

第三,确认两端GND参考。

第四,再检查波特率、数据位、停止位、校验位。

第五,如果只有高波特率才乱码,再去看波形边沿、线长和地噪声。

图4:DB9等传统串口连接器上的信号定义与板级MCU UART并不是简单的一根TX、一根RX。

UART调不通时,不要看到“串口”两个字就默认它们能直接连。先确认协议参数,再确认电平标准,最后确认两端是不是有同一个可靠的地参考。

声明:

本文由凡亿教育整理,转载请注明来源!

投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

凡亿教育

凡亿教育打通了“人才培养+人才输送”的闭环,致力于做电子工程师的梦工厂,打造“真正有就业保障的电子工程师职业教育平台”。帮助电子人快速成长,实现升职加薪。 为了满足学员多样化学习需求,凡亿教育课程开设了硬件、PCB、仿真、电源、EMC、FPGA、电机、嵌入式、单片机、物联网、人工智能等多门主流学科。

开班信息