TTL 和 RS232 到底有什么区别?一句话:表示 0 和 1 的电压不一样
一句话: TTL 用 0V/3.3V 表示 0 和 1,是芯片原生的信号。RS232 用 ±5V~±15V 表示,电压摆幅大、抗干扰强、适合走长线。两根线接同一个串口,中间就差一个电平转换芯片。
适合谁读:适合嵌入式开发者、单片机初学者及遇到类似问题的工程师
物理区别就一个
| TTL | RS232 | |
|---|---|---|
| 发"1" | 3.3V(高电平) | 负电压(-5V ~ -15V) |
| 发"0" | 0V(地) | 正电压(+5V ~ +15V) |
| 线数 | 3 根(TX, RX, GND) | 3 根 |
| 传输距离 | 板级(几厘米到几十厘米) | 几十米 |
| 抗干扰 | 一般 | 强(正负摆幅大) |
注意:RS232 的逻辑是反的——"1"用负电压,"0"用正电压。
为什么要有两种
TTL 是芯片原生的电平。MCU 的 GPIO 口直接输出 0V 或 3.3V。
但这个信号走不了长线——电缆上有电阻和电容,3.3V 的摆幅走几米就衰减到分不清 0 还是 1 了。
RS232 把电压摆幅拉大到 ±5V 甚至 ±15V——信号到对端还很清晰,中间有个电平转换芯片(比如 MAX232)做互转。
简单记:TTL 是芯片原生的,RS232 是能走长线的。
电路上怎么接
MCU TX ──> MAX232 ──> RS232 电缆 ──> MAX232 ──> 对端 RX MCU RX <── MAX232 <── RS232 电缆 <── MAX232 <── 对端 TX GND ──────────────────────────────── GNDMAX232 一脚接 TTL,一脚接 RS232,中间做升压/降压。
什么时候用哪个
| 场景 | 用 TTL | 用 RS232 |
|---|---|---|
| 同一块板子上的芯片通信 | ✓ | |
| USB 转串口模块(CH340/CP2102) | ✓ | |
| 和电脑 COM 口通信 | ✓ | |
| 几米外的设备通信 | ✓ | |
| 调试时用杜邦线连 | ✓ |
别接错了
TTL 直接接到 RS232 接口上——烧芯片。MAX232 输出的 ±12V 灌进 MCU 的 3.3V 引脚,IO 口直接废掉。
反过来,RS232 设备接到 TTL 口上——不发数据。3.3V 的摆幅在 RS232 接收器眼里可能连阈值都够不着。
中间必须有一个电平转换芯片。
总结
| 要点 | 说明 |
|---|---|
| 本质区别 | 表示 0/1 的电压不同 |
| TTL | 芯片原生,0V/3.3V,板级通信 |
| RS232 | ±5V~±15V,抗干扰强,长距离 |
| 互连 | 必须经过 MAX232 等电平转换芯片 |
有用的话点个收藏,下次调试直接用。有问题欢迎评论区交流,看到了都会回。
下一篇:用分和元讲透(附代码)——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通
