开发板引脚速查

树莓派、Arduino Uno 和 ESP32 的引脚一次查全,编号对照、复用功能和电源地线都标在同一张表里。

开发板

BCM2711 / BCM2712(Raspberry Pi 4 / 5)。物理引脚号是排针从左下角开始数的那套编号,2 的倍数是偶数排在下面一行(3V3 在 1 号)。写代码时用的是 BCM 编号,看排针找线的工具用物理编号,WiringPi 是第三套、容易和 BCM 混淆,新项目建议只用 BCM。

树莓派 40 针 GPIO的引脚定义
物理引脚BCM 编号WiringPi 编号功能说明
1——电源 3.3V 电源输出,来自板载稳压器,给外设取电的推荐电压。
2——电源 5V 电源输出,直接来自 USB-C 供电,绕过稳压器,能带较大电流但受电源限制。
3GPIO28I2C I2C1 SDA,默认接了 1.8kΩ 上拉电阻。接别的 I2C 设备直接用这对。
4——电源 5V 电源输出。
5GPIO39I2C I2C1 SCL,默认接了 1.8kΩ 上拉电阻。
6——地线 地。
7GPIO47普通 GPIO 通用 IO,同时是 1-Wire 默认引脚和 GPCLK0 时钟输出。默认带 1-Wire 功能时会占用它。
8GPIO1415UART 串口 UART0 TXD,接串口设备的 RX。系统串口控制台默认占用,要在 raspi-config 里关掉才能当普通串口用。
9——地线 地。
10GPIO1516UART 串口 UART0 RXD,接串口设备的 TX。
11GPIO170普通 GPIO 通用 IO,常用作普通输出。
12GPIO181PWM / 定时器 PWM0 或 PCM_CLK,也是 I2S 的时钟脚,硬件 PWM 首选。
13GPIO272普通 GPIO 通用 IO。
14——地线 地。
15GPIO223普通 GPIO 通用 IO。
16GPIO234普通 GPIO 通用 IO。
17——电源 3.3V 电源输出。
18GPIO245普通 GPIO 通用 IO。
19GPIO1012SPI SPI0 MOSI,主输出从输入。
20——地线 地。
21GPIO913SPI SPI0 MISO,主输入从输出。
22GPIO256普通 GPIO 通用 IO,也常当软件 PWM 用。
23GPIO1114SPI SPI0 SCLK,时钟。
24GPIO810SPI SPI0 CE0,片选 0。
25——地线 地。
26GPIO711SPI SPI0 CE1,片选 1。
27GPIO030I2C ID_SD,与 GPIO1 组成 I2C0,专门给 HAT 的 EEPROM 识别用。除非做 HAT,别动这两个脚。
28GPIO131I2C ID_SC,HAT EEPROM 的时钟线,板上已有 1.8kΩ 上拉。
29GPIO521普通 GPIO 通用 IO。
30——地线 地。
31GPIO622普通 GPIO 通用 IO。
32GPIO1226PWM / 定时器 PWM0,和 GPIO18 共用同一个 PWM 通道,两个只能选一个。
33GPIO1323PWM / 定时器 PWM1,与 GPIO18/12 组共通道。
34——地线 地。
35GPIO1924SPI SPI1 MISO,也是 PCM_FS。
36GPIO1627普通 GPIO 通用 IO。
37GPIO2625普通 GPIO 通用 IO。
38GPIO2028SPI SPI1 MOSI,也是 PCM_DIN,需要启用 SPI1 才生效。
39——地线 地。
40GPIO2129SPI SPI1 SCLK,也是 PCM_DOUT。

接线前必须确认的几件事

先确认逻辑电平,再接线。树莓派和 ESP32 的 IO 都是 3.3V,Arduino Uno 是 5V。把 Uno 的 5V 输出接到树莓派或 ESP32 的 IO,基本会立刻打穿那个引脚,甚至烧掉整颗芯片。跨电平通信要么用电阻分压、要么用专用的电平转换模块,或者干脆只接信号低的一侧做单向输入。

ESP32 的启动脚。GPIO0、2、5、12、15 在上电瞬间会被芯片采样来决定启动模式。GPIO12 拉高会进不了正常启动,GPIO0 拉低会进下载模式,GPIO15 需要保持低电平。这些脚接继电器、LED、传感器时要先确认上电默认状态,否则表现为「板子一直重启」「烧录失败」,而代码本身完全没问题。

树莓派三套编号的坑。物理引脚 11 是 GPIO17,WiringPi 里叫 0,BCM 里叫 17 或 GPIO17。网上教程三套混着写,最容易接错线。经验做法是接线看物理引脚号、写代码看 BCM,不要用 WiringPi 编号,因为它已经停止维护,且在 Pi 5 上不支持。

上拉电阻和外设冲突。树莓派 GPIO2/3 板上已有 1.8kΩ 上拉,再加 I2C 模块自带的 4.7kΩ 上拉会并把阻值拉低,某些设备会出现时序不稳。GPIO0/1 也有上拉,而且是留给 HAT EEPROM 的。ESP32 的 GPIO34 到 39 没有内部上拉,接按键时必须在外部加电阻。

供电预算别只看引脚数量。树莓派的 3.3V 排针输出实际能给的电流有限(受板载稳压器限制,别超过 50mA),驱动电机、灯带这类负载要用外部电源,并且共地。ESP32 的 3V3 约 600mA,但 Wi-Fi 发射瞬时电流能到 500mA,加上一堆传感器很容易掉压重启,最稳的是单独给 5V 引脚供电。