目录:
树莓派和普通电脑不一样的地方在于它还带了17个可编程的GPIO(General Purpose Input/Output),可以用来驱动各种外设(如传感器,步进电机等)。但GPIO的编号方法有些混乱,不同的API(如wiringPi,RPi.GPIO等)对GPIO的端口号编号并不一样,下面则用图表标明了对应的叫法,这样在看程序例子的时候可以确定物理是哪个接口。
GPIO库
- wiringPi C,有Perl, PHP, Ruby, Node.JS和**Golang**的扩展,支持wiringPi Pin和BCM GPIO两种编号
- RPi.GPIO Python,支持Board Pin和BCM GPIO两种编号
- Webiopi,Python, 使用BCM GPIO编号
- WiringPi-Go, Go语言,支持以上三种编号
编号规范
- 第一列是wiringPi API中的缺省编号,
wiringPiSetup()采用这列编号 - 第二列(Name)往往是转接板的编号
- 第三列是树莓派板子上的自然编号(左边引脚为1-15,右边引脚为2-26),
RPi.GPIO.setmode(GPIO.BOARD)采用这列编号 - 树莓派主芯片提供商Broadcom的编号方法,相当于调用了
WiringPiSetupGpio()或RPi.GPIO.setmode(GPIO.BCM)采用这列编号
| wiringPi Pin | Name | Board Pin | BCM GPIO |
|---|---|---|---|
| 0 | GPIO 0 | 11 | 17 |
| 1 | GPIO 1 | 12 | 18 |
| 2 | GPIO 2 | 13 | 21 |
| 3 | GPIO 3 | 15 | 22 |
| 4 | GPIO 4 | 16 | 23 |
| 5 | GPIO 5 | 18 | 24 |
| 6 | GPIO 6 | 22 | 25 |
| 7 | GPIO 7 | 7 | 4 |
| 8 | SDA | 3 | 0 |
| 9 | SCL | 5 | 1 |
| 10 | CE0 | 24 | 8 |
| 11 | CE1 | 26 | 7 |
| 12 | MOSI | 19 | 10 |
| 13 | MISO | 21 | 9 |
| 14 | SCLK | 23 | 11 |
| 15 | TXD | 8 | 14 |
| 16 | RXD | 10 | 15 |
Rev.2 新增的引脚:
| wiringPi Pin | Name | Board Pin | BCM GPIO |
|---|---|---|---|
| 17 | GPIO 8 | 28 | |
| 18 | GPIO 9 | 29 | |
| 19 | GPIO10 | 30 | |
| 20 | GPIO11 | 31 |

GPIO转接板
GPIO转接板通过彩虹排线可将树莓派的GPIO引脚转接到面包板上,方便试验,下图是一个相应的产品,可以看到每个引脚标都已标注好了名称,查上表就知道代码里该用哪个编号做参数了。

物理左排针脚说明
| Pin | Raspberry Pi | Broadcom names |
|---|---|---|
| 1 | 3.3V | 3.3V |
| 3 | SDA0 | I2C0 SDA |
| 5 | SCL0 | I2C0 SCL |
| 7 | GPIO 7 | GPIO 4 |
| 9 | DNC | DNC |
| 11 | GPIO 0 | GPIO 17 |
| 13 | GPIO 2 | GPIO 21 (rev2) / GPIO 27 (rev1) |
| 15 | GPIO 3 | GPIO 22 |
| 17 | DNC | DNC |
| 19 | SPI MOSI | SPI MOSI |
| 21 | SPI MOSO | SPI MOSO |
| 23 | SPI SCLK | SPI SCLK |
| 25 | DNC | DNC |
物理左排针脚说明
| Pin | Raspberry Pi | Broadcom names |
|---|---|---|
| 2 | 5V | 5V |
| 4 | DNC | DNC |
| 6 | GND | GND |
| 8 | TX | UART TxD |
| 10 | RX | UART RxD |
| 12 | GPIO 1 | GPIO 18 |
| 14 | DNC | DNC |
| 16 | GPIO 4 | GPIO 23 |
| 18 | GPIO 5 | GPIO 24 |
| 20 | DNC | DNC |
| 22 | GPIO 6 | GPIO 25 |
| 24 | SP10 CEO N | SP10 CEO N |
| 26 | SP10 CE1 N | SP10 CE1 N |
Notes:
- all the UART, SPI and I2C pins can be reconfigured as GPIO if needed.