树莓派GPIO的编号规范
树莓派和普通电脑不一样的地方在于它还带了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
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
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