→ 同一总线上挂2个相同地址传感器?→ 晶振误差±5%?,否则材料错乱到你怀疑人生!→ 120Ω终端电阻。

✨ 嵌入式工程师必备!5分钟搞懂单片机「通信外设」选型指南


? 单片机通信外设速查表

外设特点通信方式适用场景选型口诀
UART? 简单!两根线就能通信
? 全双工(收发同时)
? 波特率自由配(9600~115200常见)
异步串行
? TX发 + RX收
? 无需时钟线
? 靠起始/停止位同步
传感器读数
PC调试输出
模块固件升级
❤️ 要简单,选UART!
SPI? 速度王者(50MHz+)
? 全双工+同步
? 需要4根线(MOSI/MISO/SCK/CS)
同步串行
? 主设备发时钟SCK
? MOSI发素材,MISO收数据
? CS片选控制多设备
高速Flash/SD卡
OLED屏驱动
ADC/DAC芯片
? 拼速度,上SPI!
I²C? 省线神器(2根线!)
? 半双工(不能同时收发)
? 拥护多主多从地址寻址
同步串行
? SCL时钟 + SDA数据
? 7/10位设备地址
? 开漏输出需上拉电阻
板载传感器
EEPROM存储
RTC时钟芯片
? 省引脚,用I²C!
CAN? 抗干扰战神(差分信号)
? 多设备总线通信
? 自带错误检测+重发
差分总线
? CAN_H + CAN_L双绞线
? 非破坏仲裁(优先级机制)
? 广播+过滤接收
汽车ECU通信
工业PLC控制
机器人系统
?️ 抗干扰,CAN强!
USB? 高速(480Mbps!)
? 支持热插拔
? 协议栈艰难(需库拥护)
主从架构
? Host(主)/Device(从)
? 差分信号D+/D-
? 承受OTG主从切换
设备固件升级
HID外设(键鼠)
高速数据采集
⚡ 要高速,USB冲!
BLE? 超低功耗(电池扛1年+)
? 支持Mesh组网
? 手机直连超方便
2.4G无线
? GAP(广播/连接)
? GATT(服务/特征值)
? 自适应跳频防干扰
智能手环
蓝牙温控器
物联网传感器
? 低功耗,BLE稳!

? 避坑指南

  1. I²C地址冲突
    → 同一总线上挂2个相同地址传感器??硬件改地址或换I²C交换机!

  2. SPI时钟干扰
    → SCK线过长?加磁珠滤波缩短走线,否则信息错乱到你怀疑人生!

  3. CAN总线终端电阻
    → 120Ω终端电阻必须加在总线两端!不加?资料帧反射全乱套!

  4. UART波特率偏差
    → 晶振误差±5%?通信直接失败!选自动波特率检测或换高精度晶振~


? 一招选型法

graph LR
A[通信需求] --> B{速度要求?}
B -->|超高速| C[SPI/USB]
B -->|中低速| D{引脚数量?}
D -->|紧张(2根)| E[I²C/UART]
D -->|充足(4根+)| F[SPI]
A --> G{抗干扰?}
G -->|强| H[CAN]
G -->|弱| I[其他]
A --> J{要无线?}
J -->|是| K[BLE/Wi-Fi]

? 场景案例

「智能家居温控器」怎么选?

  • 传感器读数:I²C(省线!挂多个BME280)
  • 屏幕驱动:SPI(刷屏快!)
  • 连接手机:BLE(低功耗+手机直连)
  • 固件升级:USB/UART(烧录方便)

关注我?分享更多知识

posted @ 2025-08-06 20:56  yfceshi  阅读(11)  评论(0)    收藏  举报