树莓派wiringPi,BCM,BOARD编码对应管脚
wiringPi,BCM,BOARD编码
树莓派中执行:
$> gpio readall
即可得到关于树莓派管脚的各种信息
上面的图可能不是特别清楚, 可以看下面的这个:
图片的出处图上有标示:
解释一下怎么看:
物理引脚BOARD编码和你树莓派上的管脚是正好对应的, 比如:
下图中插着杜邦线的引脚就是物理引脚BOARD编码中的39号引脚
再比如, BOARD编码中的37号引脚
在wiringPi 中的编码就是25号引脚
在BCM 中的编码就是26号引脚
他们有的功能都是GPIO.25(通用输入输出管脚25)
用代码举个例子
在wiringPi中, 你要使用GPIO.25号管脚, 你就得驱动25
pinMode(25,OUTPUT);
digitalWrite(25,HIGH);
而在BCM中, 你要使用GPIO.25号管脚, 你就得驱动26
pinMode(26,OUTPUT);
digitalWrite(26,HIGH);
BCM,wiringPi,BOARD使用场合
BOARD编码和BCM一般都在python库中使用
import RPi.GPIO as GPIO //引入RPi.GPIO库
GPIO.setmode(GPIO.BCM) //设置引脚编号为BCM编码方式;
GPIO.setmode(GPIO.BOARD) //设置GPIO引脚为BOARD编码方式。
而wiringPi一般用于C++等平台
LIBS += -lwiringPi
#include "wiringPi.h"
wiringPiSetup();
import RPi.GPIO as GPIO # 引入GPIO模块
from time import sleep # 引入time模块
GPIO.setmode(GPIO.BCM) # 使用BCM编号方式
GPIO.setup(18,GPIO.OUT) # 将GPIO19设置为输出模式
while True: # 无限循环
GPIO.output(18,GPIO.HIGH) # 将GPIO19设置为高电平,点亮LED
sleep(1) # 等待1秒钟
GPIO.output(18,GPIO.LOW) # 将GPIO19设置为低电平,熄灭LED
sleep(1) # 等待0.5秒钟
input() # 按下任意键退出
GPIO.cleanup() # 清理释放GPIO资源,将GPIO复位