Cubieboard官方 GPIO驱动使用总结

最近参考了tll同窗的GPIO操做教程,终于完成了CB的GPIO控制操做。
板子使用的操做系统是官方标准系统1.1版本的linaro官方img的,自己已经带gpio驱动文件。
1.官方驱动为gpio-sunxi.ko,位于 /lib/modules/3.0.62/kernel/drivers/gpio/gpio-sunxi.ko。
2.由于系统启动后并无加载该驱动模块,须要用户自行插入,使用insmod命令便可。以后lsmod能够看到gpio-sunxi.
固然也能够编辑/etc/modules,在其中加入gpio-sunxi.ko。重启后lsmod检查是否已经加载。
3.驱动加载完毕后就能够操做GPIO口了。
对于GPIO口的操做,须要有如下三个步骤:
1).须要指明须要操做的端口号。
echo 4 > /sys/class/gpio/export 
ls /sys/class/gpio 
会出现咱们须要的端口文件夹 gpio4-pe4,
若是 echo 1 > /sys/class/gpio/export  彷佛出现 gpio1-pe1。
2)打开gpio4-pe4,或者 ls gpio4-pe4,能够看到gpio4-pe4里面的文件,有2个文件与咱们操做有关:
分别是 direction 和 value ,能够看出分别表明端口的方向 和端口的值。
对于direction ,能够写入echo out > /sys/class/gpio/gpio4-pe4/direction 设置该端口为输出端。若是不设置,则写入数据也没有反应。
3)端口设置或清零.
经过向value文件写入1或者0来完成端口的设置或清零。
echo 1 > /sys/class/gpio/gpio4-pe4/value ;set 1.
经过上述3个步骤就可完成对GPIO端口的选择、设置、和使用。
可是在使用中发现问题及解决方法:
1 gpio-sunxi.ko驱动不会自动被系统加载,每次启动后须要本身加载,比较麻烦。
解决方法:编辑 /etc/modules 添加gpio驱动模块。以后每次重启后,系统自动加载GPIO模块。
2.每次系统重启后都须要从新设置GPIO口,配置端口方向。
解决方法:编辑 /etc/rc.local,在exit前 加入
echo 1 > /sys/class/gpio/export 
echo out > /sys/class/gpio/gpio4-pe4/direction
完成对GPIP口的选择和端口设置。
3.对于 /sys的操做 须要chmod一下权限。chmod -R 777 /sys .
这也须要编辑/etc/rc.local来实现。

另外,此次我利用CB实现的功能是与ttl智能门锁相似,我是使用手机来控制照明灯。
基本的架构也是利用 LNMP来作服务器,利用php语言对  /sys/class/gpio/gpio4-pe4/value进行读写操做来完成的。
这里须要注意的是 nginx服务器的网站目录设置,以前设置在 /etc/nginx/www/不能完成对 /sys/..的操做。
后来从新修改了网站站点目录,直接设置到 / 下,就可完成对 /sys 文件的操做了。

经过这几天对GPIO的学习,感受linux者的很强大,哈哈!!!!php


原文做者:flyword
原文连接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=725&highlight=gpiolinux

相关文章
相关标签/搜索