[技术] 【Rico Board试用体验】跟着小狂玩RicoBoard之三种方法玩转GPIO第一篇

[复制链接]

实习版主

发表于 2016-11-29 20:56:44   10765 查看 7 回复 显示全部楼层 倒序浏览
分享

销声匿迹一个星期了,小狂又回来啦,哈哈,最近有点迷茫了,说实话不知道怎么玩耍好了,试用贴的目的是为了完成试用的项目,但是小狂又想玩点特别的,就目前来看这两个方面要玩耍的东西很是不一样啊,要想完成项目就要写驱动,写应用,但是玩点刺激的比如把debain移植到RicoBoard上,搭建点服务器啥的爽一爽。哎,一直在纠结怎么玩耍能对得起这块板子,另外看了大部分的试用贴,感觉大家都很上心,写的帖子质量都很高,在某些方面可能共性的东西更多,写出来的东西大同小异,也不是小狂想要的,到现在也没有一个具体的答案。现在就随心吧,把自己整的东西搞出来,多加点理解,尽全力做出来不一样的东西,圆满完成这一次试用,哈哈。接下来的三篇帖子小狂会带着大家使用3种不同的方式,来玩转RicoBoard的GPIO,其实说是3种不止三种,这里不再讲在用户空间的物理地址映射,对这一块感兴趣的可以参考小狂以前Nanopi关于mmap的应用。

GPIO是任何一款嵌入式芯片的基础,GPIO对一个数电工程师来说,就像软件的helloword,GPIO的入门篇我们就从米尔的官方历程说起,让大家有个直观的印象。

我们先按照官方的历程做一遍,做之前我们需要了解我们的硬件,我选择一个没有被设计的口GPIO1_23,这个口在哪呢,看图

1.png

2.png

在板子的这个地方

3.png

首先我们要计算IO的编号,GPIO1_23=1*32+23=55,这个在接下来的两篇中也会用到,记住这种算法。打开串口控制台,第一步先导出GPIO55 ,其实就是向相应的文件中写内容。

打开串口控制台,第一步先导出GPIO55 ,其实就是向相应的文件中写内容。

4.png

查看一下GPIO的端口号

5.png

设置GPIO方向为输出

6.png

由此我们就可以看到Linux中基本上都是基于文件操作的实质啦,到目前为止我们都是基于文件的操作方式来控制我们的物理层。当然中间要穿插很多层的,哈哈。

然后让其拉高

7.png

有示波器的朋友就能看到IO已经变高,这里我就不上图了,这种操作可能并不直观,不过没有关系,我们来操作一下我们板子上的LED灯。

在我们的板子上总共有4个灯,分别接在了GPIO1_24-GPIO1_27上,其中LED0是系统的心跳灯,我们不去控制它,我们可以选择LED1、LED2、LED3的任何一个来做控制。我们以LED1为例, 好了,现在我们就可以让我们的灯亮啦,从原理图中可以看到,IO口为逻辑低的时候灯亮,现在我们让它亮起来。米尔专门为LED灯做了设备接口,我们可以没有必要那么复杂的去控制LED灯,只需要这样就行,哈哈。看图

8.png

9.png

可以看到我们的第二个LED已经亮了。当我们往文件中写0时,led灯会熄灭。

10.png

11.png

下面我们就把led_play历程简单分析一下执行查看一下效果。

打开历程我们会发现例程里总共有3个文件,第一个是编译好的文件,我们不去管它,第二个是调用的文件,第三个是makefile文件,用来生成可执行文件的。如果有了解的童鞋可以跳过这一段,

12.png

Makefile文件很简单,我把每一行都给了注释贴上文件

13.png

Led_paly.c文件实现的功能的方式跟我们一开始操作的方式差不多,这里就不做累述了,实现的功能,刚开始的时候会让除了心跳的其他三个灯全亮,延时200ms后灯灭,然后一直监控是否有按键事件的产生,入后按下超过三秒,就打断循环,执行流水灯程序。

我们把文件拷贝到虚拟机上,然后编译。

14.png

生成可执行文件,传到下位机,执行,看效果。

15.png

16.png

具体的效果我就不上图了,图片也说明不了问题,有兴趣的可以跑一下看看。好了,这一篇到这结束,然后下一篇我们将深入内核去写个简单的驱动,来演示相应的LED控制,谢谢,撒花,鼓掌,哈哈。


技术员

发表于 2016-12-1 13:55:28  
撒花
回复

举报

技术员

发表于 2016-12-1 13:55:40  

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
鼓掌
回复

举报

技术员

发表于 2016-12-1 13:57:44  
感觉楼主是个实在boy
回复

举报

实习版主

发表于 2016-12-1 17:04:34    楼主|
回复

点赞 举报

实习版主

发表于 2016-12-1 17:04:43    楼主|
回复

点赞 举报

实习版主

发表于 2016-12-1 17:05:13    楼主|
泡芙奶昔 发表于 2016-12-1 13:57
感觉楼主是个实在boy

必须是在啊,哈哈,做事要踏实,嘻嘻,哈哈
回复

点赞 举报

等待验证会员

发表于 2017-8-10 13:58:04  
楼主 ,为什么我执行echo 56 > /sys/class/gpio/export
给我报个-sh: echo: write error: Device or resource busy?
回复

点赞 举报

只有小组成员才能发言,加入小组>>

5个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区