CubieBoard博客-HomeCubieTech公司网站

CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 20186|回复: 38

Cubieboard官方 GPIO驱动使用总结

[复制链接]

2

主题

2

好友

4555

积分

论坛元老

Rank: 8Rank: 8

贡献
839
金钱
1958
威望
849
买家信用
卖家信用
积分
4555
发表于 2013-7-12 20:33:15 |显示全部楼层
本帖最后由 flyword 于 2014-4-14 09:09 编辑

最近参考了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者的很强大,哈哈!!!!




已有 2 人评分威望 金钱 贡献 收起 理由
tll + 10 很给力!
tiger92665 + 5 + 5 + 5 总结的很详细具体!

总评分: 威望 + 15  金钱 + 5  贡献 + 5   查看全部评分

回复

使用道具 举报

109

主题

10

好友

9043

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
1762
金钱
2699
威望
1786
买家信用
卖家信用
积分
9043
发表于 2013-7-13 12:12:22 |显示全部楼层
楼主你好,我叫tll,不是ttl,谢谢……
我可能一年内都无法再登录这个论坛了
回复

使用道具 举报

109

主题

10

好友

9043

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
1762
金钱
2699
威望
1786
买家信用
卖家信用
积分
9043
发表于 2013-7-13 13:40:54 |显示全部楼层
不过我写的确实有些不具体,你这个不错
我可能一年内都无法再登录这个论坛了
回复

使用道具 举报

38

主题

2

好友

7718

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
1400
金钱
3271
威望
1400
买家信用
卖家信用
积分
7718
发表于 2013-7-14 18:29:46 |显示全部楼层
赞一下ttl ,可能ttl用的比较多
俺的小站:点击--》http://www.heartiot.com/
欢迎来访!
不要一味的索取,饮水要思源,回报社区
回复

使用道具 举报

2

主题

2

好友

4555

积分

论坛元老

Rank: 8Rank: 8

贡献
839
金钱
1958
威望
849
买家信用
卖家信用
积分
4555
发表于 2013-7-14 18:46:30 |显示全部楼层
tll 发表于 2013-7-13 12:12
楼主你好,我叫tll,不是ttl,谢谢……

呵呵,搞错了,兄弟,不好意思啊!
回复

使用道具 举报

109

主题

10

好友

9043

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
1762
金钱
2699
威望
1786
买家信用
卖家信用
积分
9043
发表于 2013-7-14 19:07:56 |显示全部楼层
flyword 发表于 2013-7-14 18:46
呵呵,搞错了,兄弟,不好意思啊!

我又出了个新教程,你可以看看,更方便
我可能一年内都无法再登录这个论坛了
回复

使用道具 举报

13

主题

0

好友

4024

积分

论坛元老

Rank: 8Rank: 8

贡献
757
金钱
1602
威望
757
买家信用
卖家信用
积分
4024
发表于 2013-8-2 08:04:48 来自手机 |显示全部楼层
这个比较具体,晚上回家试试。赞一个!
来自: Android客户端
回复

使用道具 举报

13

主题

0

好友

4024

积分

论坛元老

Rank: 8Rank: 8

贡献
757
金钱
1602
威望
757
买家信用
卖家信用
积分
4024
发表于 2013-8-4 00:55:49 |显示全部楼层
提个问题,你到的script.fex里面是不是定义了[gpio_para],我的里面没定义,echo 1 > /sys/class/gpio/export没效果.
回复

使用道具 举报

2

主题

2

好友

4555

积分

论坛元老

Rank: 8Rank: 8

贡献
839
金钱
1958
威望
849
买家信用
卖家信用
积分
4555
发表于 2013-8-7 10:33:26 |显示全部楼层
hawkwolf 发表于 2013-8-4 00:55
提个问题,你到的script.fex里面是不是定义了[gpio_para],我的里面没定义,echo 1 > /sys/class/gpio/expo ...

我用的是默认的官方标准系统1.1版本的linaro官方img系统,你用bin2fex看看,应该有的,没有的话可以自己添加,然后再转换成bin文件就可以了。具体wiki一下吧!
回复

使用道具 举报

4

主题

0

好友

1211

积分

金牌会员

忘情

Rank: 6Rank: 6

贡献
232
金钱
446
威望
237
买家信用
卖家信用
积分
1211
发表于 2013-8-13 16:49:44 |显示全部楼层
我输入这个命令
insmod /lib/modules/3.0.62/kernel/drivers/gpio/gpio-sunxi.ko
提示这个,求解决办法
insmod: error inserting '/lib/modules/3.0.62/kernel/drivers/gpio/gpio-sunxi.ko': -1 Invalid module format
“我不是你的一切吗?”“你就是我的一妾”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区    

GMT+8, 2021-3-2 16:46 , Processed in 0.039744 second(s), 11 queries , Apc On.

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc. | Style by Coxxs

回顶部