树莓派和普通电脑不一样的地方在于它还带了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 新增的引脚: