单片机共地通信

一、共地才能通信核心

所有高低电平(3.3V / 0V),都是「相对 GND 0V」算出来的。

👉 没有共同的 0V 参考,双方就根本听不懂对方的 1 和 0。

VCC = 电源正极

GND 公共地 = 电源负极 = 0V


二、共地-公共地-概念

两个设备:设备 A(发送方) 设备 B(接收方)

把两边的 负极 / GND / 0V 导线连在一起 = 共地

公共地

所有模块全部连到同一个负极

  • 单片机负极
  • LED 负极
  • 按键负极
  • 传感器负极
  • 电源负极

全部连在一起 → 叫 公共地 GND

作用:

  1. 统一电压参考(全部以 0V 为基准)
  2. 不同设备之间能正常通信、不乱码
  3. 电路形成完整电流回路

三、正常共地通信

双方统一参考点:都是 0V

  • A 发高电平:相对于自己 GND = 3.3V

  • B 的 GND 和 A 连在一起

  • B 测量到:也是 3.3V → 识别为 1

  • A 发低电平:0V

  • B 测到也是 0V → 识别为 0

✅ 双方标准一致:3.3V=1 , 0V=0通信完全正常。


四、不共地 = 直接无法通信

  1. 两边「0V 基准不一样」
  • 甲设备的 0V
  • 乙设备的 0V 电位不相等,存在压差、悬浮电压、干扰电压
  1. 举个极端例子

甲地:0V乙地:浮动在 1.5V(因为不共地、悬浮、感应电)

现在:甲发高电平:3.3V 乙看这个电压 = 3.3−1.5=1.8V

1.8V 卡在单片机高低电平中间模糊区👉 接收芯片不知道这是 1 还是 0

结果:

  • 高低电平识别错乱
  • 数据全部乱码
  • 时而收到 1、时而收到 0
  • 完全无法正常串口、I2C、SPI 通信

五、不共地还会出现的严重问题

  1. 信号乱跳、误触发接收端 IO 浮空,感应杂波,不停乱变

  2. 压差击穿芯片两个设备地电位差过大会产生大回路电流、烧毁 IO 口

  3. 完全无法识别按键、总线、信号。

  4. 施密特触发器、电压比较器全部依赖稳定统一的 0V 参考


六、用单片机 IO 举例

单片机判断:

  • >2.0V → 高电平 1
  • <1.0V → 低电平 0

如果不共地:对方发的 3.3V、0V,到你这边全部偏移、漂移、抬高 / 压低,电压全部错位,逻辑直接报废。


七、终极极简

  1. 所有数字电路的 1、0 都是相对 GND (0V) 定义的
  2. 共地 = 双方共用同一个 0V 参考点;
  3. 不共地 → 两地存在电位差 → 高低电平电压偏移;
  4. 电压偏移 → 超出正常判定阈值 → 乱码、通信失败;
  5. 跨设备通信(串口、I2C、SPI)必须共地,只接信号线没用。
相关推荐
2201_756206342 小时前
STM32L431 USART3 串口调试总结
单片机·嵌入式硬件
yugi9878382 小时前
STM32F407 + EC20 串口透传 TCP DTU 实现方案
stm32·嵌入式硬件·tcp/ip
Deitymoon3 小时前
STM32——按键控制led灯
stm32·单片机·嵌入式硬件
三品吉他手会点灯3 小时前
STM32 VSCode 开发-与Keil MDK协同开发环境搭建
笔记·vscode·stm32·单片机·嵌入式硬件
三佛科技-187366133973 小时前
FT32F103VEAT7兼容STM32F103VETx/APM32F103VET6,单片机替代分析
单片机·嵌入式硬件
程序员黄老师3 小时前
一分钟了解ARM发展史与全系列产品
arm开发·嵌入式硬件·arm
風清掦3 小时前
【江科大STM32学习笔记-11】SPI通信协议 - 11.2 硬件SPI读写W25Q64
笔记·stm32·单片机·嵌入式硬件·学习
[J] 一坚12 小时前
嵌入式高手C
c语言·开发语言·stm32·单片机·mcu·51单片机·iot
FreakStudio12 小时前
和做工厂系统的印尼老哥,复刻了一套属于 MicroPython 的包管理系统
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机