作者:刘凯

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



如果是在已经适配好的linux内核上,那么相信已经有了完成的gpiochip,可以在用户空间/sys/class/gpio目录下看到,如:

export

gpiochip0/

gpiochip32/

gpiochip64/

gpiochip96/

unexport

然后对照手册看下需要用到哪个GPIO,举个例子:

如果使想用GPIO1_20

那么GPIO Number就是 1 x 32 + 20 = 54

使用分两种情况:

1. 用户空间:

echo 54 > export

这样在这个/sys/class/gpio目录下就会产生gpio54文件夹

在文件夹下需要用到的有两个文件:

direction 用来配置输入(in)还是输出(out)

value 如果这个GPIO配置成了输入,那么通过cat value可以查看当前这个GPIO是什么电位;如果配置成了输出,那么可以通过echo 1/0 > value给这个GPIO口指定输出电平。

2. 内核空间(驱动):

#include <linux/gpio.h>

gpio_request_one(54, GPIOF_INIT_HIGH, "gpio1_20")

这里是配置成输出,默认高电平,别名(label)为gpio1_20——就是给你的IO口取个名字。

gpio_request_one(54, GPIOF_IN, "gpio1_20")

这个就是配置成输入。

使用完后别忘了free

gpio_free(54);

具体GPIO接口详见:​​Linux/Documentation/gpio.txt​




作者:柒月