BBB教训四局:简单LED对照实验

学习BBB董事会最终目的是做同样的想象单片机控制。但控制是不一样的想法,在所有(Linux在本质上,硬件设备的控制,以虚拟文件有关的设备下的读写),研究了几天头都大了还是没有任何进展。客文章。也没有个统一的说法,预计都是BBB板的年份不同。以及安装的系统版本号不同。

最后选择榜样,从最基础的单命令控制IO接口開始做。

达到目标:从GPIOportP8.12和P8.11引脚输出0或1

这节课用到两个命令,cat和echo,详细的用法网上非常多。最简单的理解:cat 用来查看文件(变量)值,而echo用来写入文件(变量)值。

操作IO口是对/sys/class/gpio这个文件夹下的文件进行了一系列读写操作实现,由于gpio驱动是默认载入的,所以无需载入device tree(设备树,以后学会了再说)就能实现操作。

简单说明下,/sys 文件夹中存放着系统内核和驱动相关的内容,它是一个虚拟的文件系统,这个文件系统的文件夹结构实质上就是内核对象模型树。我们能够对这里的文件进行读写操作来实现对设备的操作。

至于每一个设备里都有哪些文件。操作哪些文件能产生什么效果,还是由设备驱动程序定义的了。

系统开机后 /sys/class/gpio 文件夹下就仅仅有默认的几个文件文件夹。BBB板总共一百多个可用的GPIOport并没有一个一个罗列出来,Linux下控制IO口就是读写IO文件,所以首先得把对应的GPIO文件找出来,事实上就是通过echo命令把须要控制的GPIOport设置为可用状态,/sys/class/gpio 文件夹下就能够显示出相关文件了(简单理解就是原来port控制文件隐身了。通过echo命令把它显示出来)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHV5ZWppZTg4ODg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

1、使用P8.12引脚控制LED灯

在/sys/class/gpio 文件夹下执行 echo 44 > export ,意思是把P8.12设置为可用状态

这个“44”编号是通过《BBB引脚功能速查表》。找到P8.12相应的GPIO.NO就是44

运行这个命令后再查询下当前文件夹文件。就会出现一个gpio44的文件夹:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHV5ZWppZTg4ODg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

准备好一个小指示灯。两根线,万用板(没有也没事,能接好指示灯即可),我这里用的是P8.12port,P8.2接负端。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHV5ZWppZTg4ODg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

用dir 列出 gpio44文件夹下的7个文件。当中“direction”是设置port为输入in或输出out的文件(參数);“value”就是port值0或1(低电平或高电平),我们直接读写这两个文件就能够了。

使用cat 命令查看当前值,再通过echo 命令改动成须要的值。注意命令使用格式。由于这个简单的实验目的是实现指标灯点亮和灭灯操作。所以“direction”要设置为out 。通过命令catdirection 查看到原来的值为 in ,所以使用命令echo out > direction 设置为 out 。

然后通过改变 value 的值就能够点亮或关闭二极管灯了。

输入:echo 1 >value 灯亮

输入:echo 0 >value 灯灭

过程感觉是非常easy的,但理解起来就非常难的。

仅仅能懂得了字符终端模式下的命令操作,明确当中的控制原理后才干在C编程中运用自如。

2、使用P8.11引脚控制LED灯

在/sys/class/gpio 文件夹下执行 echo 45 > export 。意思是把P8.11设置为可用状态

这个“45”编号相同是通过《BBB引脚功能速查表》。找到P8.11相应的GPIO.NO就是45

运行这个命令后再查询下当前文件夹文件。就会出现一个gpio45的文件夹:

控制过程是一样的,就不再写了。截几个图看下即可了。

3、通过实验我们一定要明确几点:

A.控制BBB板的GPIOport输出0或1。就是改动/sys/class/gpio文件夹下对应gpioxxx下的value文件的值

B.改变GPIOport的输入输出模式就是改动/sys/class/gpio文件夹下对应gpioxxx下的direction文件的值为in 或 out

C.整个BBB板的硬件设备控制都是通过读写对应的Linux设备虚拟文件来实现的,所以学习BBB板的文件结构系统是很重要的

D.懂得正确使用《BBB引脚功能速查表》

E.像本实验中操作GPIOport驱动由于系统是默认载入的。所以不须要再载入device tree设备树可以实现操作,但是,其他类推ADC、UART在操作界面之前,必须在相关的加载device tree设备树。这个device tree设备树的我现在也很模糊的概念,经过进一步的讨论。

F.学会灵活运用cat和 echo 命令

BeagleBone Black教训四局:简单LED对照实验的更多相关文章

  1. BeagleBone Black板第四课:简单LED控制实验

    BBB板第四课:简单LED控制实验 学习BBB板的终于目的是想像单片机一样做控制,但控制思路全然不一样(Linux下控制硬件设备实质就是对相关设备虚拟文件的读写).研究了几天头都大了还是没有进展,网上 ...

  2. 四种简单的图像显著性区域特征提取方法-----AC/HC/LC/FT。

    四种简单的图像显著性区域特征提取方法-----> AC/HC/LC/FT. 分类: 图像处理 2014-08-03 12:40 4088人阅读 评论(4) 收藏 举报 salient regio ...

  3. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  4. Beaglebone Black–GPIO 高低电平控制 LED 灯

    上一篇,运用 Linux 的 sysfs,控制本机上的 LED 灯,usr0 至 usr3,这次用 GPIO 控制外部的电路,点亮 LED 灯. 这次的全部材料: BBB 一台 购买 BBB 自带的 ...

  5. Beaglebone Back学习四(GPIO实验)

    GPIO Beaglebone Back开发板引出了92个引脚,其中只有65个GPIO口可通过配置使用,由于引脚具有“复用”的特性,大约每个引脚有8种工作模式(Beagle System Refere ...

  6. JMS学习(四)-一个简单的聊天应用程序分析

    一,介绍 本文介绍一个简单的聊天应用程序:生产者将消息发送到Topic上,然后由ActiveMQ将该消息Push给订阅了该Topic的消费者.示例程序来自于<JAVA 消息服务--第二版 Mar ...

  7. 【转载】COM 组件设计与应用(四)——简单调用组件

    原文:http://vckbase.com/index.php/wv/1211.html 一.前言 同志们.朋友们.各位领导,大家好. VCKBASE 不得了, 网友众多文章好. 组件设计怎么学? 知 ...

  8. C# 基础知识 (四).C#简单介绍及托管代码

            暑假转瞬即逝,从10天的支教生活到1周的江浙沪旅游,在这个漫长的暑假中我经历了非常多东西,也学到了非常多东西,也认识到了非常多不足之处!闲暇之余我准备又一次进一步巩固C#相关知识,包含 ...

  9. ROS探索总结(四)——简单的机器人仿真

    前边我们已经介绍了ROS的基本情况,以及新手入门ROS的初级教程,现在就要真正的使用ROS进入机器人世界了.接下来我们涉及到的很多例程都是<ROS by Example>这本书的内容,我是 ...

随机推荐

  1. 利用Perf4j 对java项目进行性能监控

    Perf4j 可以对自定义监控范围的java代码进行日志记录,再经统计分析生成所需性能数据.Perf4j 提供了对常用日志工具log4j的扩展以方便与产品集成,它产生的性能数据可被用于生成可视化的性能 ...

  2. [置顶] 如何在Python IDLE中调试Python代码?

    好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...

  3. Linux下安装Python3.3.0

    Linux下安装Python3.3.0_路易_新浪博客 Linux下安装Python3.3.0 (2013-01-08 11:45:37)

  4. Hulu面试题解答——N位数去除K个数字(解法错误sorry)

    给定一个N位数,比如12345,从里面去掉k个数字.得到一个N-k位的数.比如去掉2,4,得到135,去掉1,5.得到234.设计算法.求出全部得到的N-k位数里面最小的那一个. 写的代码例如以下,思 ...

  5. PPPOE 模拟环境搭建

    这段时间.包含我自己測试OTT盒子 PPPOE的时候比較痛苦.要不就是在别人的位置上測试.要不就是借用PPPOE的设备,认为还是自己搭建一个PPPOE真实拨号上网的环境多好! 可是坑爹的win7找不到 ...

  6. &quot;ScrollView can host only one direct child&quot;问题解决了

    1. 问题叙述性说明: (请注意以下几点大胆). ScrollView作为顶层view时报错,直接导致apk崩溃.具体错误信息例如以下: 12-21 09:12:15.150: D/AndroidRu ...

  7. sort功能使用

    头: #include <algorithm> using namespace std; 1.默认的sort函数是按升序排序.  sort(a,a+n);                / ...

  8. iOS_16_开关控制器_modal_代码方法

    最后效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...

  9. MFC控件(15):Tooltip

    在各种软件产品中我们经常碰到把鼠标放到一个控件上时会弹出关于该控件的一些提示信息.这就是tooltip. 在MFC中使用该功能可以使用类CToolTipCtrl.假如要让鼠标放到按钮IDC_BTN上时 ...

  10. matlab 2014a 改为英文版本号

    1. 在 Matlab 的安装目录以下找到例如以下的路径,X:\MATLAB\R2014a\java\jar,当中 X 为安装盘符,这个不用过多解释了,然后找到目录 zh_CN.此目录就是中文界面的语 ...