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

3guoyangyang7 ( 楼主 ) 2016-11-29 20:56:44  显示全部楼层

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

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

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

1.png

4 M# i/ t& A- R, ~" D8 U
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

. ~& v4 \$ J: ], Z2 D3 X
9.png

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

10.png
# R9 m' h5 q9 ^+ L! {0 ], `
11.png

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

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

12.png

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

13.png

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

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

14.png

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

15.png

& S! @/ F% L, T% z+ p
16.png

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

) D# s$ ?2 T9 S" c, C

7个回复

大红枣 发表于 2016-12-1 13:55:28
撒花
回复 2

举报 使用道具

绝代双骄 发表于 2016-12-1 13:55:40

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
鼓掌
回复 2

举报 使用道具

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

举报 使用道具

3guoyangyang7 发表于 2016-12-1 17:04:34
大红枣 发表于 2016-12-1 13:55
1 [- }) c+ U6 s0 D! [3 {7 l" Z; p撒花
( l7 h% v5 }+ T$ v- O3 U
谢谢支持
3guoyangyang7 发表于 2016-12-1 17:04:43
绝代双骄 发表于 2016-12-1 13:55
) W+ D" m( N( P% b: G  R鼓掌

3 f) P0 Q# e5 ^' h+ E谢谢支持,
3guoyangyang7 发表于 2016-12-1 17:05:13
泡芙奶昔 发表于 2016-12-1 13:57
( H' s. F: O! L9 O% {' y8 v3 S感觉楼主是个实在boy
# c4 v. Q( R1 s- `# ^) j- C. h% y
必须是在啊,哈哈,做事要踏实,嘻嘻,哈哈
n5631228 发表于 2017-8-10 13:58:04
楼主 ,为什么我执行echo 56 > /sys/class/gpio/export* H" n" f" M  @, H/ j. }
给我报个-sh: echo: write error: Device or resource busy?
您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

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

小黑屋|手机版|Archiver|电子发烧友 ( 粤ICP备14022951号-2

GMT+8, 2017-8-19 19:11 , Processed in 0.128419 second(s), 15 queries , Memcache On.

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表