news 2026/4/20 9:21:19

零基础理解树莓派5引脚定义:通俗解释物理引脚布局

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
零基础理解树莓派5引脚定义:通俗解释物理引脚布局

从零开始看懂树莓派5的40个引脚:一张图、几根线,如何连接整个硬件世界?

你有没有过这样的经历?手握一块闪闪发光的树莓派5,插上电源,连上屏幕,Python代码写得飞起——可一旦拿起杜邦线,面对那两排密密麻麻的金属针脚,瞬间大脑宕机:

“哪根是地?3.3V在哪儿?我接错了会不会烧板子?”

别慌。这几乎是每个嵌入式新手必经的“引脚恐惧症”。而治愈它的唯一良方,就是真正理解这些小针脚背后的逻辑

今天,我们就抛开术语堆砌和手册照搬,用最直白的语言,带你一步步拆解树莓派5那40个物理引脚的秘密。不靠死记硬背,只讲清“为什么这么设计”、“怎么安全使用”、“常见坑怎么绕”。


一、先认清楚:我们到底在跟谁打交道?

树莓派5右下角那一排40个金属触点,官方叫它GPIO排针(General Purpose Input/Output)。名字听着高大上,其实你可以把它想象成一个“软硬接口翻译官”——你的代码在这里变成电信号,去控制现实世界的灯、传感器、屏幕;外部设备的状态也通过它传回给系统。

但问题来了:
同一个引脚,为什么一会儿叫“Pin 7”,一会儿又叫“GPIO 4”?它们是同一个东西吗?

答案是:是同一个物理位置,但属于不同的“编号体系”

三种常见的“叫法”,千万别混

编号方式特点使用场景
物理引脚号(Pin #)从1到40,按位置顺序数,左上角是1,往下走到底再往上走接线时最直观,面包板连线都标这个
BCM编号(GPIO #)芯片内部的编号,比如 GPIO 17、GPIO 27写代码时常用,尤其是 RPi.GPIO 库
功能名称如 SDA、SCL、TXD、MOSI 等表示该引脚复用为某种通信协议

📌举个例子
你在板子上看到第11个物理引脚(Pin 11),它对应的是 BCM GPIO 17。如果你想用 Python 控制这个脚亮灯,你得写GPIO.setmode(GPIO.BCM)然后设置GPIO.setup(17, ...)——而不是写11!

💡 小建议:初学者接线时以物理引脚号为准,编程时注意切换到BCM编号模式,避免张冠李戴。


二、这40个引脚,不是随便排的:背后有套路!

别看这40个针密密麻麻,其实布局非常讲究。树莓派从B+型号开始就定下了这套标准,到现在都没变过,就是为了保证兼容性。

我们可以把这40个引脚大致分成几类:

1. 电源与地线:系统的“生命线”

引脚功能注意事项
Pin 1, 173.3V 输出最大负载约50mA,不能驱动电机或继电器
Pin 2, 45V 输入/输出来自USB-C供电,电流能力较强(取决于电源适配器)
多个引脚(6, 9, 14, 20, 25, 30, 34, 39)GND(接地)数量多是为了降低噪声、提高稳定性

🔋重点提醒
- 所有模块都需要共地!否则信号无法形成回路。
- 不要用GPIO引脚给外设供电!特别是像OLED屏或多传感器系统,最好外接稳压模块。

2. 通用GPIO:真正的“万能选手”

这类引脚数量最多,可以被软件配置为输入或输出,用来读按钮状态、控制LED、模拟简单协议等。

例如:
-BCM GPIO 18(Pin 12)支持硬件PWM,适合接蜂鸣器或调光LED
-BCM GPIO 2、3(Pin 3、5)默认复用为I²C总线,但也可以当普通IO用

🧠冷知识:虽然有28个可用GPIO,但部分会被系统占用(如用于SD卡检测、HAT识别),实际自由使用的可能只有20多个。

3. 专用通信接口:让设备“说话”的高速公路

这才是树莓派连接复杂外设的核心。三大主流协议各司其职:

✅ I²C:低速但省线,适合传感器集群
  • 使用两根线:SDA(数据)、SCL(时钟)
  • 对应引脚:Pin 3(SDA)、Pin 5(SCL)
  • 常见应用:温湿度传感器(BMP280)、RTC时钟芯片、小型OLED屏

🔧 工作特点:
- 每个设备有一个地址,主机通过地址“点名”通信
- 总线上需要接两个上拉电阻(通常4.7kΩ)
- 树莓派5默认启用/dev/i2c-1,支持扫描设备

🛠️ 实用技巧:
想快速检查I²C设备是否接好?终端运行这条命令:

i2cdetect -y 1

如果看到某个地址上有字符(比如3C),说明设备在线了!

✅ SPI:高速传输,适合图像和音频
  • 四线制:MOSI、MISO、SCLK、CE0/CE1
  • 对应引脚:Pin 19 (MOSI), Pin 21 (MISO), Pin 23 (SCLK), Pin 24/26 (CE0/CE1)

🎯 典型用途:
- 驱动彩色LCD屏
- 连接ADC/DAC模块
- nRF24L01无线通信模块

⚙️ 关键参数:
- 最高可达62.5 MHz时钟频率(远超I²C)
- 支持双片选(CE0 和 CE1),可同时挂两个SPI设备
- 数据传输需匹配CPOL 和 CPHA(时钟极性和相位)

💻 Python 示例(读取SPI设备):

import spidev spi = spidev.SpiDev() spi.open(0, 0) # bus 0, device 0 (CE0) spi.max_speed_hz = 1_000_000 # 1MHz data = spi.xfer([0x01]) # 发送一字节并接收响应 print(f"收到: {data}") spi.close()

⚠️ 注意:某些SPI设备对时序要求严格,务必查阅数据手册确认工作模式。

✅ UART:串口通信,跨平台“老朋友”
  • 引脚:Pin 8(TXD,发送)、Pin 10(RXD,接收)
  • 默认映射到/dev/serial0/dev/ttyAMA0

💬 主要用途:
- 与Arduino、ESP32等微控制器通信
- 接GPS模块、蓝牙串口模块
- 调试Linux内核启动信息(控制台输出)

🚫 常见陷阱:
- 树莓派默认把串口用于系统登录 shell,导致你程序无法使用
- 解决方法:进raspi-config→ Interface Options → Serial Port → 关闭登录shell,保留硬件接口

🔌 电平警告:
UART是3.3V TTL电平,不能直接连RS232(±12V)!必须加转换芯片(如MAX3232)。


三、实战前必知的安全守则:别让第一块板子成为“烈士”

很多新手第一次接线,往往因为一个小疏忽导致板子重启、死机甚至永久损坏。以下几点,请刻进DNA:

🔴 绝对禁止的行为

错误操作后果正确做法
把5V接到GPIO引脚极大概率烧毁SoC所有GPIO只能承受3.3V
从3.3V引脚取大电流(>50mA)导致电压下降,系统不稳定外部设备独立供电
接线时不断电容易短路打火拔电操作,确认无误再上电
杜邦线插歪导致相邻引脚短接可能引发连锁故障使用带防反插结构的转接板

🟡 推荐的最佳实践

  1. 优先使用 gpiozero 库而非 RPi.GPIO
    它更高级、更安全,自动处理许多底层细节,且默认使用 BCM 编号。

  2. 按钮/开关输入记得启用内部上下拉电阻
    ```python
    from gpiozero import Button

btn = Button(17, pull_up=True) # 启用内部上拉
```

  1. 复杂项目考虑用 HAT 或 pHAT 扩展板
    官方规范的扩展板自带EEPROM,插入后系统能自动识别设备类型,并加载相应驱动。

  2. 养成“三步走”习惯

    查表 → 断电接线 → 上电测试

别急着通电!先对着引脚图反复核对每一根线的位置。


四、做个小项目练手:环境监测站是怎么搭起来的?

纸上得来终觉浅。我们来看一个真实的小项目:用树莓派5做一个桌面级环境监测仪

所需元件:
- BMP280 气压/温度传感器(I²C)
- DHT22 温湿度传感器(数字IO)
- SSD1306 OLED 屏幕(SPI)
- 有源蜂鸣器(接PWM报警)

第一步:规划引脚分配

设备接线方式使用引脚
BMP280I²CPin 1 (3.3V), Pin 3 (SDA), Pin 5 (SCL), Pin 6 (GND)
OLED屏SPIPin 19 (MOSI), Pin 21 (MISO), Pin 23 (SCLK), Pin 24 (CE0), Pin 18 (DC), Pin 22 (RST)
DHT22数字输入Pin 1 (3.3V), Pin 12 (Data), Pin 14 (GND)
蜂鸣器PWM输出Pin 12 (GPIO 18), Pin 14 (GND)

📌 注意:OLED虽然走SPI,但还需要额外两个控制脚(DC、RST),通常用普通GPIO控制。

第二步:验证连接

# 检查I²C设备 i2cdetect -y 1 # 查看SPI设备是否存在 ls /dev/spidev*

如果看到类似/dev/spidev0.0和地址77(BMP280)出现,说明硬件连接成功。

第三步:整合代码(简化版)

import time from smbus2 import SMBus from spidev import SpiDev from gpiozero import PWMOutputDevice import Adafruit_SSD1306 from PIL import Image, ImageDraw # 初始化组件 bus_i2c = SMBus(1) spi = SpiDev() spi.open(0, 0) buzzer = PWMOutputDevice(18) disp = Adafruit_SSD1306.OLED_RP2800(rst=22, dc=18) disp.begin() image = Image.new("1", (128, 64)) draw = ImageDraw.Draw(image) def read_bmp280(): # 简化读取逻辑(实际需解析寄存器) raw = bus_i2c.read_i2c_block_data(0x77, 0xFA, 6) temp_raw = (raw[0] << 12) | (raw[1] << 4) | (raw[2] >> 4) temperature = ((temp_raw / 5120.0) - 40) # 简化计算 return round(temperature, 1) try: while True: temp = read_bmp280() # 显示更新 draw.rectangle((0, 0, 128, 64), outline=0, fill=0) draw.text((10, 20), f"Temp: {temp}°C", fill=255) disp.image(image) disp.display() # 高温报警 if temp > 30: buzzer.value = 0.5 # 半强度鸣响 else: buzzer.off() time.sleep(2) except KeyboardInterrupt: buzzer.close() spi.close() bus_i2c.close()

你看,只要引脚接对了,剩下的就是拼凑模块、调用库函数的事了。


五、那些没人告诉你,但很重要的话

最后分享几个来自实战的经验之谈:

💡 1. 引脚资源是有限的,要学会“共享”与“取舍”

  • I²C总线上的设备必须地址不同,否则冲突
  • SPI的MOSI/MISO/SCLK是共享的,靠CE片选区分设备
  • 如果你用了UART通信,就不能同时用它做调试输出

💡 2. 与其死磕裸线,不如投资一块转接板

淘宝十几块钱就能买到带丝印标注的GPIO扩展板,还集成电平转换、稳压模块,极大降低出错概率。

💡 3. 学会看“gpio-readall”输出

终端运行:

gpio-readall

你会看到一张表格,显示当前所有引脚的工作模式、电平状态。这是排查问题的第一手资料。


写在最后:引脚只是起点,不是终点

掌握树莓派5的引脚定义,本质上是在建立一种思维方式:如何让虚拟的代码,真正触达物理世界

这40个引脚,就像40扇门。打开哪一扇,决定了你能连接什么样的设备;怎么开,决定了系统是否稳定可靠。

所以不必追求一次性记住所有编号。更重要的是理解它的分类逻辑、通信机制和安全边界。

当你下次拿起杜邦线时,希望你不再犹豫。
因为你已经知道:
👉 哪些是用来供电的,
👉 哪些是用来“对话”的,
👉 哪些一旦接错就会“炸场”。

而这,正是每一个硬件创客成长的第一步。

如果你正在尝试某个具体的连接却总是失败,欢迎在评论区贴出你的接线图和错误现象,我们一起debug。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 22:58:20

如何让你的键盘操作变得生动有趣?BongoCat桌面宠物终极体验指南

如何让你的键盘操作变得生动有趣&#xff1f;BongoCat桌面宠物终极体验指南 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat …

作者头像 李华
网站建设 2026/4/16 23:44:20

NotaGen实战:从风格选择到乐谱输出全流程

NotaGen实战&#xff1a;从风格选择到乐谱输出全流程 1. 引言 1.1 背景与需求 随着人工智能在艺术创作领域的不断深入&#xff0c;AI生成音乐正逐步从实验性探索走向实际应用。传统音乐创作依赖于作曲家的经验与灵感&#xff0c;而基于大语言模型&#xff08;LLM&#xff09…

作者头像 李华
网站建设 2026/4/18 5:16:06

FunASR语音识别实战:多模型协作提升识别准确率

FunASR语音识别实战&#xff1a;多模型协作提升识别准确率 1. 引言 1.1 业务场景描述 在当前智能语音应用快速发展的背景下&#xff0c;语音识别技术已成为人机交互的核心环节。无论是会议记录、视频字幕生成&#xff0c;还是客服系统自动化&#xff0c;高精度的语音转写能力…

作者头像 李华
网站建设 2026/4/17 15:32:34

verl小显存GPU能运行吗?量化压缩部署方案

verl小显存GPU能运行吗&#xff1f;量化压缩部署方案 1. verl 介绍 verl 是一个灵活、高效且可用于生产环境的强化学习&#xff08;RL&#xff09;训练框架&#xff0c;专为大型语言模型&#xff08;LLMs&#xff09;的后训练设计。它由字节跳动火山引擎团队开源&#xff0c;…

作者头像 李华
网站建设 2026/4/17 22:02:41

B站资源下载全攻略:BiliTools跨平台工具箱深度体验

B站资源下载全攻略&#xff1a;BiliTools跨平台工具箱深度体验 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliToo…

作者头像 李华
网站建设 2026/4/16 16:28:06

GPEN镜像输出命名自定义,操作灵活又便捷

GPEN镜像输出命名自定义&#xff0c;操作灵活又便捷 在深度学习与计算机视觉领域&#xff0c;人像修复增强技术正逐步成为图像处理中的关键能力。GPEN&#xff08;GAN Prior Embedded Network&#xff09;作为一项先进的人像超分与修复算法&#xff0c;凭借其强大的生成先验建…

作者头像 李华