一、共地才能通信核心
所有高低电平(3.3V / 0V),都是「相对 GND 0V」算出来的。
👉 没有共同的 0V 参考,双方就根本听不懂对方的 1 和 0。
VCC = 电源正极
GND 公共地 = 电源负极 = 0V
二、共地-公共地-概念
两个设备:设备 A(发送方) 设备 B(接收方)
把两边的 负极 / GND / 0V 导线连在一起 = 共地
公共地
所有模块全部连到同一个负极:
- 单片机负极
- LED 负极
- 按键负极
- 传感器负极
- 电源负极
全部连在一起 → 叫 公共地 GND
作用:
- 统一电压参考(全部以 0V 为基准)
- 不同设备之间能正常通信、不乱码
- 电路形成完整电流回路
三、正常共地通信
双方统一参考点:都是 0V
-
A 发高电平:相对于自己 GND = 3.3V
-
B 的 GND 和 A 连在一起
-
B 测量到:也是 3.3V → 识别为 1
-
A 发低电平:0V
-
B 测到也是 0V → 识别为 0
✅ 双方标准一致:3.3V=1 , 0V=0通信完全正常。
四、不共地 = 直接无法通信
- 两边「0V 基准不一样」
- 甲设备的 0V
- 乙设备的 0V 电位不相等,存在压差、悬浮电压、干扰电压
- 举个极端例子
甲地:0V乙地:浮动在 1.5V(因为不共地、悬浮、感应电)
现在:甲发高电平:3.3V 乙看这个电压 = 3.3−1.5=1.8V
1.8V 卡在单片机高低电平中间模糊区👉 接收芯片不知道这是 1 还是 0
结果:
- 高低电平识别错乱
- 数据全部乱码
- 时而收到 1、时而收到 0
- 完全无法正常串口、I2C、SPI 通信
五、不共地还会出现的严重问题
-
信号乱跳、误触发接收端 IO 浮空,感应杂波,不停乱变
-
压差击穿芯片两个设备地电位差过大会产生大回路电流、烧毁 IO 口
-
完全无法识别按键、总线、信号。
-
施密特触发器、电压比较器全部依赖稳定统一的 0V 参考
六、用单片机 IO 举例
单片机判断:
- >2.0V → 高电平 1
- <1.0V → 低电平 0
如果不共地:对方发的 3.3V、0V,到你这边全部偏移、漂移、抬高 / 压低,电压全部错位,逻辑直接报废。
七、终极极简
- 所有数字电路的 1、0 都是相对 GND (0V) 定义的;
- 共地 = 双方共用同一个 0V 参考点;
- 不共地 → 两地存在电位差 → 高低电平电压偏移;
- 电压偏移 → 超出正常判定阈值 → 乱码、通信失败;
- 跨设备通信(串口、I2C、SPI)必须共地,只接信号线没用。