文档章节

在Cubieboard上通过GPIO成功点亮第一个LED【My first step on G...

lanybass
 lanybass
发布于 2013/02/02 17:15
字数 525
阅读 4735
收藏 6

如果你不知道什么是Cubieboard,点这里。

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

理论上,51开发板上的针脚能实现的,cubieboard都能实现。

我折腾了很多天、很多个内核之后,终于迈出了第一步,成功点亮了一个LED灯。


正面



看看引脚


控制输出电平

简单的说一下步骤:
首先要编译与你内核版本对应的sun4i-gpio.ko驱动(我同时也编译了uImage),我的内核版本是3.0.57+
将编译好的驱动放到SD卡上rootfs分区的/lib/modules/3.0.57+(换为你的内核版本)/kernel/drivers/misc/sun4i-gpio.ko

然后修改script.bin,转为script.fex,添加gpio_para配置段,然后转回script.bin,放到SD卡第一个分区,覆盖script.bin(我同时也将uImage给替换了,应该不改uImage也可以)

gpio_para配置如下(只是测试,没把所有的针脚都加进来):

[gpio_para]
gpio_used = 1
gpio_num = 4
gpio_pin_1 = port:PG00<1><default><default><default>
gpio_pin_2 = port:PB19<1><default><default><default>
gpio_pin_3 = port:PG02<1><default><default><default>
gpio_pin_4 = port:PG04<1><default><default><default>

引脚名字请参考  http://linux-sunxi.org/Cubieboard#Expansion_ports
名字后面的1表示把这个引脚以输出模式工作,0则为输入

驱动和script.bin放进去后,把卡插回到cubieboard,启动,在系统中加载你编译好的驱动:insmod /lib/modules/3.0.57+(换为你的内核版本)/kernel/drivers/misc/sun4i-gpio.ko

我用的PG0引脚来做测试的,根据wiki,PG0位于U15(即USB和以太网卡之间的那两排)的5号引脚,所以我接的这里,然后把led另一头接地(我用的U15的19号针脚)

然后通过 echo 1 > /sys/devices/virtual/misc/sun4i-gpio/pin/***来向对应的针脚输出高电平(***代表对应的针脚,echo 0则为低电平),当然也可以用C语言来实现。

© 著作权归作者所有

lanybass

lanybass

粉丝 85
博文 46
码字总数 15052
作品 0
渝中
技术主管
私信 提问
加载中

评论(5)

guoyh
guoyh
是啊,刚测试了一下,现在的cubian版本,已经集成驱动,直接用脚本就可以控制led,gpio接口,真是非常方便。。。。。
lanybass
lanybass 博主

引用来自“huzuyi”的评论

请问如何编译gpio驱动

那是去年的事了,现在已经不用这个驱动了。现在官方的镜像也自带了驱动了,不需要编译,用法也不是这样,请参考官方论坛。
huzuyi
huzuyi
请问如何编译gpio驱动
lanybass
lanybass 博主

引用来自“红薯”的评论

玩得很洋嘛

不洋。。国产
红薯
红薯
玩得很洋嘛
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
Cubieboard1显示DS18B20温度信息到LED

Cubieboard1的内核已经支持w1温度传感器DS18B20 (依赖的内核选项和模块包括dallas's 1-wire support, gpiosunxi, w1sunxi, w1gpio, w1slave_therm )。 下图的DIY是在8位8段LED显示模块上同时...

cubieboard
2014/08/12
283
0
Cubieboard究竟几个意思?

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

benny0755
2013/08/16
4K
10
做一个Cubieduino如何(有新内容了)?

今天看到一个东西: http://www.oschina.net/question/116701105771 里面有一段文字 pcDuino是一个平台,是LINUX软件和开源硬件的结合,pcDuino赋予创客力量,只有你有创意就可以用pcDuino做出...

cubieboard
2014/08/28
46
0

没有更多内容

加载失败,请刷新页面

加载更多

堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
20分钟前
2
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
22分钟前
2
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
53分钟前
6
0
MySQL 表崩溃修复

MySQL日志报错 2019-10-19 13:41:51 19916 [ERROR] /usr/local/mysql/bin/mysqld: Table './initread_hss/user_info' is marked as crashed and should be repaired2019-10-19 13:41:51 1......

雁南飞丶
今天
6
0
Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部