在Linux中,最常见的读写GPIO方式就是用GPIO sysfs interface,是通过操作/sys/class/gpio
目录下的export
、unexport
、gpio{N}/direction
, gpio{N}/value
(用实际引脚号替代{N})等文件实现的,经常出现shell脚本里面。
首先声明GPIO口,比如GPIO24:
echo 24 > /sys/class/gpio/export
然后在/sys/class/gpio,会生成一个新目录,其名字叫gpio258
比如:GPIO24,N对应是24;进入其目录:cd /sys/class/gpio/gpio24
依次能看到:active_low 、device、 direction 、edge 、power 、subsystem 、uevent 、value
其中比较常用的是value文件,它存放GPIO的值;范围是:0或1。我们可以直接对它读写,达到读写GPIO的效果
这里采用shell+Python对GPIO24进行操作:
root@myd-y6ull14x14:~# echo 24 > /sys/class/gpio/export
root@myd-y6ull14x14:~# echo out > /sys/class/gpio/gpio24/direction
然后进入python3并书写函数:
>>> def writ_24(io_str):
... with open('/sys/class/gpio/gpio24/value','w') as f:
... f.write(io_str)
... print("write_24: %s" % (io_str))
...
然后利用writ_24("1")或者writ_24("0")就可以点亮或者熄灭LED灯了:
>>> writ_24("1")
write_24: 1
>>> writ_24("0")
write_24: 0
>>> writ_24("1")
write_24: 1
更多回帖