1. 物理连接:一切排查的起点
串口通信,听起来挺高大上,但其实它就像两个人打电话。电话线要是没接好,或者接错了,那肯定听不清对方在说什么,甚至听到的都是“叽里咕噜”的杂音。串口乱码,很多时候问题就出在这个最基础的“物理连接”上。
我刚开始做项目那会儿,就犯过一个特别低级的错误。当时两块板子死活通信不上,收到的全是乱码。我折腾了半天软件配置,查波特率、查时钟,头发都快薅秃了。最后实在没辙了,把板子翻过来一看,好家伙,TX和RX两根线接反了!我把A板的TX接到了B板的TX上,RX接到了RX上,这相当于两个人都在对着话筒喊,却把听筒都捂住了,能听到声音才怪。所以,排查乱码的第一步,务必、一定、必须先确认物理连接。这包括三点:第一,共地。两块板子或者设备之间,GND线必须连上,这是信号电平的参考基准,没有共地,信号电压就是“浮”着的,根本无法正确识别高低电平。第二,TX和RX交叉连接。发送端(TX)必须连接到接收端(RX),这是铁律。第三,检查连接线本身是否完好,接触是否牢靠。别小看杜邦线,用久了内部可能断裂,或者插头松动,都会导致间歇性乱码。
除了线序,接口类型也容易让人迷糊。现在常见的串口有TTL电平(3.3V或5V)和RS-232电平(±12V左右)。如果你用一个USB转TTL的小模块去直接连接一个老式设备的RS-232串口,那大概率会烧坏你的模块,更别提通信了。所以,在连接前,一定要搞清楚双方的电平标准,必要时使用电平转换芯片(比如MAX232)进行适配。我建议大家在调试初期,可以先用一个USB转串口工具,配合串口助手软件,单独测试每一块板子的发送功能是否正常,这能快速把硬件连接问题隔离出来。
2. 波特率:最熟悉的“陌生人”
波特率不一致导致乱码,这几乎是每个嵌入式工程师的“必修课”。道理很简单,就像两个人约好了一秒说一个字,结果一个人一秒说两个,另一个人一秒听半个,这对话肯定对不上。但就是这么简单的道理,在实际项目中却频频“坑人”。
为什么它容易出错?首先,配置疏忽是最常见的。比如,上位机软件(如串口助手、调试终端)设


302

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



