设备不是孤立的,很多设备都会留有接口和外部设备进行通信,比如串口、网口等。单片机由于能力有限,与外部设备的通信方式一般采用串口或者总线接口。
串口是计算机上一种非常通用的设备通信协议。注意是来源于计算机,那么怎么用到单片机上呢?因为好用啊,简化管脚后一样可以完成通信,所以就慢慢的从计算机通信扩展到多种设备之间的通信了。

计算机的串口用的是九芯接口。
| 9芯 | 信号方向来自 | 缩写 | 描述 |
| 1 | 调制解调器 | CD | 载波检测 |
| 2 | 调制解调器 | RXD | 接收数据 |
| 3 | PC | TXD | 发送数据 |
| 4 | PC | DTR | 数据终端准备好 |
| 5 | GND | 信号地 | |
| 6 | 调制解调器 | DSR | 通讯设备准备好 |
| 7 | PC | RTS | 请求发送 |
| 8 | 调制解调器 | CTS | 允许发送 |
| 9 | 调制解调器 | RI | 响铃指示器 |
两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。
在单片机中使用,三个管脚即可,收发管脚加信号地。
先看看串口的电气特性:
1)RS-232串口通信最远距离是50英尺(大约15m);
2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps;
3)RS-232C上传送的数字量采用负逻辑,且与地对称;
逻辑1:-3~-15V
逻辑0:+3~+15V
要进行电路设计必须知道接口的电气特性,也经常叫物理特性!
计算机的电压这么高啊?所以与单片机连接时常常需要加入电平转换芯片,最常用的是MAX232。
如果是芯片之间的串口连接,一般都是对等的电压,就不需要电压转换芯片了。说到这,同学们就必须了解一下芯片常涉及的几种电压规范。目前就是TTL电平和CMOS电平。
TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑"0",这被称做TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。
CMOS电平和TTL电平:CMOS电平电压范围在3~15V,比如4000系列当5V供电时,输出在4.6以上为高电平,输出在0.05V以下为低电平。输入在3.5V以上为高电平,输入在1.5V以下为低电平。而对于TTL芯片,供电范围在0~5V,常见都是5V,如74系列5V供电,输出在2.7V以上为高电平,输出在0.5V以下为低电平,输入在2V以上为高电平,在0.8V以下为低电平。因此,CMOS电路与TTL电路就有一个电平转换的问题,使两者电平域值能匹配。
那么一般单片机、DSP、FPGA他们之间管脚能否直接相连呢?一般情况下,相同电压的情况下是可以的,不过最好是要好好查查技术手册上的VIL、VIH、VOL、VOH的值,看是否能够匹配(VOL要小于VIL,VOH要大于VIH,是指一个连接当中的)。有些在一般应用中没有问题,但是参数上就是有点不够匹配,在某些情况下可能就不够稳定,或者不同批次的器件就不能运行。
这些知识看似简单,但确实又很实用而且要注意。本课程在线下上时我就多次强调外部电压和内部电压的转换的重要性,道理在本次课讲了。电压对不上,芯片肯定不能正常工作甚至会损坏,就好比你给人喂草,人能像牛那样开心吗?肯定会罢 工,弄不好还会火冒三丈,这就类似会引发烧芯片现象。

串口转USB!
现在笔记本基本只剩 USB,传统 DB9 RS-232 串口被 USB 取代了。和单片机连接时,通常用的是 USB 转 TTL 串口模块,电脑上会虚拟出一个 COM 口,单片机那边仍然是 UART/TTL 串口。
传统串口是 RS-232 电平,DB9 接口。USB 转串口芯片内部做的是:
USB 协议 ↔ 串口芯片 ↔ UART/TTL 串口
电脑端看到的是“虚拟 COM 口”,比如 Windows 的 COM3。实际数据走 USB,芯片再把它变成 UART 的 TX/RX 时序。
常见两类:
USB 转 TTL 模块:输出 VCC/GND/TXD/RXD,接单片机 UART。常见 CH340、CP2102、FT232。
USB 转 RS-232 线:输出 DB9,是 ±3~15V 的 RS-232 电平,不能直接接单片机 TTL,否则可能烧。
USB 转 RS-485 模块:输出 A/B 差分,适合长距离、工业 Modbus。
单片机 UART 通常是 TTL 电平:
3.3V MCU:高电平 3.3V,低 0V
5V MCU:高电平 5V,低 0V
空闲时 TX 为高,起始位拉低
USB-TTL 模块接单片机:
TX 接 RX,RX 接 TX,不是 TX 接 TX。
必须共地,否则电平没有参考,容易乱码。
如果单片机板已有独立电源,USB-TTL 的 VCC 不要接,只接 GND/TX/RX,避免倒灌。
电脑端Windows:
设备管理器 → 端口,看 COM 号。
黄色感叹号通常是驱动没装好。
串口助手常用设置:115200、8 数据位、1 停止位、无校验、无流控,即 115200 8N1。
笔记本没有传统串口后,和单片机通信通常用 USB 转 TTL 模块,电脑端虚拟出 COM 口,单片机端仍是 UART;关键是分清 TTL/RS-232 电平、TX/RX 交叉、共地、电压匹配和驱动。

串口通信!
如何让刚学完C语言编程的大一学生开始编写单片机上的串口通信程序呢?在AI时代,我们有了非常好的老师,可以加快我们学习本科课程的速度。所以在2026年,我就着手教刚进入大二的学生开始学单片机编程,首先就是编写串口通信程序。因为她的专业是通信工程,自然要和通信打交道,那就拿串口通信当开胃菜吧。我也会在文章展示本人跟着AI学习单片机编程的过程,我会把自己当成大二刚入学的学生,逐步深入学习,当然也要给大家展示这个深入学习的过程。先看看通用硬件平台的原理图。



如果我是刚读大二的学生,该怎么求助呢?上传原理图,然后开始求助。







我看了一下学习步骤,确实很合理,不过我们现在不用Keil了,用的是STM32CubeIDE,用这个软件,然后先跑通一个LED亮灯程序。未完,待续!

老蔡聊社会
搞了个投票,让大家来评判一下社会现象。看到这个结果,我还是有些诧异的。

投票结果表明愿意当面阻止这种行为的人不多。如果当面阻止,是不是会有很多顾虑呢?比如会不会起冲突,会不会让自己被打骂?有可能。但社会不正是需要的这样的人吗?需要这样的正义感吗?我相信社会上还是有这样的人。毕竟邪不压正。即使因为劝阻被打骂,相信法律会还一个公平。感谢做出这样选择的人。社会需要正能量!好在当下年轻人抽烟比例越来越低,好事情。

修订记录
20170414 完成初稿;
20191220 修订内容;
20200806 修订内容;
20260912 修订内容;