串口,也就是 RS-232,这东西在老式电脑和单片机时代简直是王者。你买过那种带金属屏蔽罩的USB转串口线,要么插在电脑上找那个标着"DB9"的小嘴子,那就是它在发光。别被那些花里胡哨的图形界面骗了,这玩意儿本质就是个物理插座,负责把数据从电脑搬到芯片上。 这玩意儿最绝的地方不在于数字本身,而在于那套电压表里的尴尬。RS-232标准规定,高电平是负电压,低电平是正电压,跟今天主流的 TTL 逻辑反着来。
这就害得大量初学者一看到电平图就晕头转向,当作这是二进制,结局把 1 当成了负 5V,0 当成了正 3V,直接害得通讯全乱套。
实际上这挺好办,只要记住口诀“负为正,正为负”,看到负数就是高,看到正数就是低。
这种反直觉的设计,反而让老工程师在调试波形图时,往往比用正逻辑反而更顺手。 硬件上,最核心的莫过于那对 B 和 R 线。B 是发信号,R 是收信号,名字听起来挺惨。B 线连着锂电节,R 线连着电池弦。充电的时候,电流顺着 B 线进去,从 R 线出来;放电的时候反过来。
要是你没搞懂这个方向,下次充电完发现蓝牙断了,大约率就是 B 和 R 反了。
不过目前大局部主板是半个输出的设计,即只工作一半,但这细节对于初学者来说还是好办混淆,建议直接看图讲话,别光听。 接在电脑上的时候,千万别用那根一般/平平的 USB 串口线。
那玩意儿是 5V 供电,串口要求的是 9V 才能让发光二极管亮起来。
要是你把电脑直连上去,LED 就是黑的,数据也是收不进去的。得架空,用个增高支架垫起来,让接口露出一点,这样发光二极管才能正常工作。
不过目前省得如此费事,大局部主板出厂已经自带了跳线,插上 USB 就能自动识别,只要不用强制设置就行。 至于电脑端,Windows 系统自带那个 COM 口设置,简直是神器。打开“设备管理器”,找到“端口(COM 端口)",双击它,就能看到那个串口的状态。
要是是“已断开”,说明物理连接没难题,只是软件没认,按个回车就行;要是是“值毛病”,那可能是波特率对不上,比如电脑设的是 9600,串口却接成了 115200,这时候得在“属性”里改一下“波特率”要么“数据位”、“暂停位”这些参数。
有时候好办改一下“数据位”要么“暂停位”,通讯就能恢复正常了,这比装个驱动要靠谱多了。 具体开啥参数,得看你的设备类型。PLC 要么单片机,一般设成 9600,数据位 8,暂停位 1。
这些数字代表啥?数据位 8 就是 8 位宽,把 8 位二进制数据全体塞进传输通道。暂停位 1 意味着发送完 8 位数据后,再等一位 0 作为终止信号。
要是你数据位设成 7,那就漏掉了一位有效数据;要是暂停位设成 2,那就多等了两位工夫,害得接收超时。
这些参数看似数字游戏,实际上直接拍板了你抓到的波形对不对,数据包是否整个。 说到抓波形,那也是个技术活。大量新手习惯直接用 USB 转 T1 转换器,要么 Arduino 自带的那个 USB 转 TTL 模块。前者成本低但漂移大,后者别看稳但好办受干扰。真正的高手往往用示波器配合串口协议库,比如 Python 的 serial 库要么串口助手。在示波器里,你能看到实时的电流波形。
要是发现某个数据包在传输过程中突然断了,波形图上会出现一个明显的尖峰要么消亡。
这时候不要慌,先看是不是波特率不对,再看是不是校验位没对上。有些设备有校验,比如 CRC,数据发完校验码不对,整个包就会被直接丢弃,这时候波形上可能会出现数据跳变,而不是正常的连续序列。 还有一点好办忽略的是极化难题。RS-232 是差分信号,也就是说,A 和 B 之间不是单根线,而是两根线。
这害得信号传输时会有镜像噪声。
要是线缆忒粗要么线材质量一般,这些噪声会被放大,害得收不到数据,要么收到乱码。
这时候能够尝试对地屏蔽,要么用 3D 打印的异形短接板贴近接口位置,把噪声扼杀在摇篮里。
不过这归于进阶技巧,日常使用只要接稳了根本没难题。 最终聊聊那套电压。标准的 RS-232 电平是 -12V 到 +12V 之间的电压来代表高低电平。
这比 TTL 的低电平要高,高电平更接近 0V 还是负电压,低电平更接近 0V 还是正电压。
这种设计别看让前端电路设计复杂了点,但在后期接收端,比如单片机内部 Silicon Labs 的 UART 模块,直接原生赞成这种电压范围,不用额外转换,就能直接工作。
难怪老式项目里,单片机接上 RS-232 就能跑起来,不用加电平转换电阻。
这种“原生”的特性,实际上就是为了兼容那些老式、不成熟的硬件设计。 总而言之,串口这东西,玩的就是细节和适配。从引脚定义到电压标准,从硬件接法到软件配置,每一步都要仔细推敲。别想着把它当成一个纯理论模型去分析,它更像是个充满坑和惊喜的魔法盒子。
只要掌握了基础逻辑,哪怕配置参数略微调个几十,也能让系统正常运作。赶明儿不管你是搞嵌入式,还是做工业设计,这个都能用到。