树莓派引出的20*2排针引脚,引脚定义使用gpio readall命令查看,如下:
可以看到wiringpi库有三种引脚编号方式,分别为:
BCM编号方式——就是使用芯片的GPIO引脚编号。
wiringpi库编号方式——使用wiringpi库自己规定的编号方式。
排针引脚编号方式——按照树莓派上20*2排针的引脚编号方式。
这里以wiringPi-Python库为例,提供了四种配置函数:
wiringpi.wiringPiSetup ——> wiringpi编号
wiringpi.wiringPiSetupGpio ——> BCM编号
wiringpi.wiringPiSetupPhys ——> 排针物理编号
wiringpi.wiringPiSetupSys ——> BCM编号,使用的/sys/class/gpio下的映射
对于python版本的wiringpi库在使用前需要导入,相关的函数可以查看wiringpi.py这个文件,路径为:/usr/local/lib/python3.9/dist-packages/wiringpi-2.60.1-py3.9-linux-armv7l.egg/wiringpi.py
一般使用前两种较多,但是使用BCM编号比较靠谱,因为直接和芯片的引脚对应。一般在开发中,我也是使用BCM的编号方式。这里提供一个中断的检测的Python例子。
import wiringpi cnt = 0 def int_callback(): global cnt print("int falling counts:" + str(cnt)) cnt += 1 wiringpi.wiringPiSetupGpio() wiringpi.wiringPiISR(6, wiringpi.INT_EDGE_FALLING, int_callback) while True: if cnt > 100 : break;
----------------------------- End -------------------------------