树莓派4B插针实战指南:I2C与SPI这样接才不踩坑
你有没有过这样的经历?
手里的温湿度传感器死活读不出数据,屏幕花屏乱码, i2cdetect 扫不到设备……折腾半天才发现,原来是SDA和SCL接反了,或者忘了加上拉电阻。
别急,这几乎是每个树莓派新手都会遇到的“入门三连”: 接线错、配置乱、信号飘 。而问题的核心,往往就藏在那40个看似一样的GPIO插针里——尤其是I2C和SPI这两组“神秘引脚”。
今天我们就来一次讲清楚: 树莓派4B上的I2C和SPI到底怎么用?哪些引脚对应什么功能?为什么你的代码跑不通?
不是照搬手册,而是从实战出发,带你真正看懂这些插针背后的逻辑。
一、先搞明白一件事:树莓派的“插针”不是随便连的
树莓派4B背面有40个物理插针(GPIO Header),编号从1到40。它们看起来密密麻麻,但其实可以分成几类:
- 电源引脚 :3.3V、5V、GND —— 提供电力支持
- 通用GPIO :可用于输入/输出数字信号
- 专用通信接口 :I2C、SPI、UART —— 用于连接外设
其中最常用也最容易混淆的就是 I2C 和 SPI 。
它们不像普通GPIO那样“一个针干一件事”,而是 多针协同工作 ,形成一套完整的通信协议。理解这一点,是避免接错线的第一步。
二、I2C:两根线挂一堆设备,靠“地址”说话
它是怎么工作的?
想象一下办公室里的对讲系统:所有人共用一条通话线路,但每个人都有自己的编号。你想找谁,先喊他的编号,再说话——这就是 I2C 的工作方式。
I2C 只需要两根线:
- SDA (Serial Data)—— 数据线,所有设备都在这条线上收发信息
- SCL (Serial Clock)—— 时钟线,由主机(树莓派)统一控制节奏
所有设备都并联在这两条线上,通过唯一的 7位设备地址 来识别自己是否被选中。
比如 BME280 的默认地址是
0x76或0x77(取决于ADDR引脚电平),DS3231 是0x68,OLED 屏幕可能是0x3C或0x3D。
只要地址不冲突,理论上你可以把100多个设备挂在同一组I2C总线上!


5692


被折叠的 条评论
为什么被折叠?



