Control GPIO in C code user space
1 |
|
应用层调用kernel gpio接口需要用到/sys/class/gpio
, 其中内容如下:1
2
3
4
5
6
7root@xxx:/sys/class/gpio # ls
export //创建一个gpio节点
gpio1 //单个GPIO控制节点
gpio2 //单个GPIO控制节点
...
gpiochip0 //一组GPIO控制节点
unexport //移除一个gpio节点
命令行方式:
echo 3 > export // 在/sys/class/gpio/下生成1个gpio3节点
以GPIO3为例:1
2
3
4
5
6
7root@xxxx:/sys/class/gpio/gpio3 # ls -l
-rw-r--r-- root root 4096 1970-01-01 08:10 active_low //0:不反转, 1: 反转(反转时value=1 为低电平)
-rw-r--r-- root root 4096 1970-01-01 08:10 direction //gpio 输入/输出, in or out
drwxr-xr-x root root 1970-01-01 08:00 power
lrwxrwxrwx root root 1970-01-01 08:10 subsystem -> ../../../../class/gpio
-rw-r--r-- root root 4096 1970-01-01 08:00 uevent
-rw-r--r-- root root 4096 1970-01-01 08:10 value //gpio 电平状态, 0 or 1
通用的还有edge设置中断触发方式,设置为in时才有。
none表示引脚为输入,不是中断引脚
rising表示引脚为中断输入,上升沿触发
falling表示引脚为中断输入,下降沿触发
both表示引脚为中断输入,边沿触发