Linux 操作GPIO-A311D-Ubuntu
Linux操作GPIO,这里使用的是A311D这个芯片的,操作系统是Ubuntu,其他的也可以参考,注意:参考该文,需要先看控制输出再看控制输入部分,因为查看GPIO序号操作只在控制输出有说明
控制GPIO输出
其中,export和unexport为GPIO子系统的属性文件,其余文件则为符号链接,分别指向各自对应的GPIO组。
当我们操作某个GPIO之前,需要先向export文件写入该GPIO编号以导出它的设备目录。
文件系统中/sys/class/gpio/unexport文件 用于通知系统取消GPIO编号导出。
direction设置GPIO输出方向,可接收的参数:in,out,high,low;其中high,low设置方向为输出并将value值设置为相应的1/0。
当gpio配置为输出模式时,可以通过 echo 设置value值设置gpio的高低电平。
查看GPIO值:cat /sys/class/gpio/gpio195(你查看哪个GPIO就写哪个编号)/value 。
控制GPIO输入
1 #!/bin/sh 2 3 echo 481 > /sys/class/gpio/export //执行这句才能生成gpio481文件夹 4 if [ -d /sys/class/gpio/gpio481 ] //判断GPIO文件是否存在 5 then 6 echo in > /sys/class/gpio/gpio481/direction //把GPIO设为输入 7 while(true) //while循环读取GPIO的值 8 do 9 gpioValue=`cat /sys/class/gpio/gpio481/value` //读取GPIO值,注意``为反引号 10 sleep 1 11 12 if [ "$gpioValue" -eq 0 ] //判断GPIO读取的值是否为0 13 then 14 sleep 3 //延时3S,消抖 15 16 if [ "$gpioValue" -eq 0 ] //再次判断读到的GPIO值 17 then 18 echo 'Rest Star' //输出提示信息 19 reboot //重启系统 20 fi 21 fi 22 done 23 else 24 echo 'RestButton not find' 25 fi
本文来自博客园,作者:白菜没我白,转载请注明原文链接:https://www.cnblogs.com/xingboy/p/15093410.html