文档章节

Cubieboard官方 GPIO驱动使用总结

cubieboard
 cubieboard
发布于 2014/08/22 11:16
字数 803
阅读 1890
收藏 3

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


原文作者:flyword
原文链接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=725&highlight=gpio

本文转载自:http://forum.cubietech.com/forum.php?mod=viewthread&tid=725&highlight=gpio​

cubieboard
粉丝 11
博文 64
码字总数 2651
作品 1
珠海
私信 提问
cubieboard常见问题整理[不再更新]

以下均为本人自己想到而整理的,如有误欢迎指出。 本文不再更新,新问题统一在cubieboard官方论坛更新: http://cubie.cc/forum.php?mod=viewthread&tid=249 1.Cubieboard是什么? Cubieboard...

lanybass
2013/01/28
5.4K
18
[教程]使用buildroot完全自定义自己的embedded linux系统(nand)

ubuntu, fedora, debian太过庞大了,你是否想完完全全的构建自己的embedded linux系统?本篇文章教你如何实现 编译环境: ubuntu 12.04(x8664) 目标环境: 1) linux-3.4内核 2) buildroot 2...

cubieboard
2014/08/29
509
0
在Cubieboard上通过GPIO成功点亮第一个LED【My first step on G...

如果你不知道什么是Cubieboard,点这里。 GPIO是干嘛的?你能看到的就是那96个pin针脚,可以用来:外接其他外设或传感器,比如LED灯,步进电机,继电器,温度传感器,红外传感器,超声波传感...

lanybass
2013/02/02
4.7K
5
Cubieboard究竟几个意思?

Cubieboard究竟几个意思? Cubieboard是由一支中国珠海的技术团队Cubieteam开发的一个开源MiniPC,有些类似于英国人开发的树莓派,但是在硬件的性能上,接口丰富性上和扩展性上均优于后者,同...

benny0755
2013/08/16
4K
10
Cubieboard:追赶树莓派

微机真的可以很“微”了。来自珠海的方糖科技(CubieTech)在2012年“树莓派”(Raspberry Pi)发布之后,相信这种只有信用卡大小但几乎有全部PC功能的计算机有可能创造一个新的市场,如果它的价...

人生能绕几个圈
2013/07/30
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

STM32进阶之串口环形缓冲区实现

队列的概念 在此之前,我们来回顾一下队列的基本概念: 队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除(出队)。 队列...

杰杰1号
8分钟前
2
0
设计模式-建造者模式

建造者模式 定义 将一个复杂对象的构建和它的表示分离,使得同样的构建过程创建出不同的表示。这句话理解起来优点抽象,我们打个简单的比方吧,中国人都喜欢做菜,做菜的时候后会放很多配料...

木本本
12分钟前
4
0
017、xml版本代码生成器配置

1、在pom.xml文件中增加mybatis-generator-maven-plugin插件 <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>......

北岩
24分钟前
3
0
用jQuery-Easy-UI编写注册页面

本文转载于:专业的前端网站➮用jQuery-Easy-UI编写注册页面 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content=......

前端老手
32分钟前
2
0
Git ssh配置

生成密钥对 ssh-keygen -t rsa -C "email@email.com"邮箱替换自己邮箱在地址C:\Users\账户\.ssh下,id_rsa、id_rsa.pub两个文件复制文件id_rsa.pub内容到github\gitlab的Settings-> SSH ......

JUKE
40分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部