[Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信
#### 一、前言
下面是本系列文章的前几篇:
- [Intel Edison开发板] 01、Edison开发板性能简述
- [Intel Edison开发板] 02、Edison开发板入门
- [Intel Edison开发板] 03、Edison开发IDE入门及跑官方提供的DEMO
- [Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建
前几篇文章中介绍了如何实现软硬件和云的通信:
这篇解决edison开发板控制IO口问题!
#### 二、发现MRAA能解决问题过程:
下面是我发现MRAA能够解决问题的过程:
- 爱迪生首页 https://software.intel.com/en-us/iot/hardware/edison/dev-kit
- 嵌入式linux接口lib MRAA
- 英特尔文档搜索MRAA https://software.intel.com/en-us/iot/documentation?field_topic_tid=20780&value=80494
- 基础开发 https://software.intel.com/en-us/node/675522
为什么要提MRAA? 因为Edison开发板的开发包中提供了两种方式控制外设,其一是利用Intel提供封装好的各种常见的传感器模块的驱动,名叫:UPM 。另一种是更底层一点,直接操作UART\SPI\I2C\IO等设备的方法:
#### 三、进一步了解MRAA——GitHub上mraa开源项目
3.1、 介绍:
Linux* Library for low speed IO Communication in C with bindings for C++, Python, Node.js & Java. Supports generic io platforms, as well as Intel® Edison, Intel® Joule, Raspberry Pi and many more. http://mraa.io
LINK:https://github.com/intel-iot-devkit/mraa
INCLUDE:PWM、IIC等底层操作的库,也有简单demo及文档介绍。
#### 四、浏览[基础开发][6],到实现UART
步骤1、 根据 Blinking an LED using C/C++ 教程可以快速建立一个控制LED闪烁的工程,之前几个都是做过的(没必要看)
步骤2、 在eclipse的help中可以新建更多因特尔工程:控制LED闪烁、模拟输入检测、数字输入、数字输出等...
这些的引脚在板子正面写着,有电源组、模拟输入组和数字输出组,P8 P4等都在数字组。
步骤3、 参考github中mraa中的example中的串口例子,实现爱迪生开发板和PC通过串口通信。
LINK:https://github.com/intel-iot-devkit/mraa/blob/master/examples/java/UartExample.java
串口引脚在数字引脚一排,即P00 P01
public class Main{
public static void main(String[] args) {
//! [Interesting]
Uart uart = new Uart(0);
if (uart.setBaudRate(115200) != Result.SUCCESS) {
System.err.println("Error setting baud rate");
System.exit(1);
}
if (uart.setMode(8, UartParity.UART_PARITY_NONE, 1) != Result.SUCCESS) {
System.err.println("Error setting mode");
System.exit(1);
}
if (uart.setFlowcontrol(false, false) != Result.SUCCESS) {
System.err.println("Error setting flow control");
System.exit(1);
}
uart.writeStr("Hello monkeys");
//! [Interesting]
}
}
实现数据读取可以用下面code:
while(true){
getData=uart.readStr(20);
System.out.println(getData+"\n");
}
至此,可以实现爱迪生开发板串口读取数据,接下来研究蓝牙平面定位
#### 系列文章:
- [[Intel Edison开发板] 01、Edison开发板性能简述][21]
- [[Intel Edison开发板] 02、Edison开发板入门][22]
- [[Intel Edison开发板] 03、Edison开发IDE入门及跑官方提供的DEMO][23]
- [[Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建][24]
@beautifulzzzz
智能硬件、物联网,热爱技术,关注产品
博客:http://blog.beautifulzzzz.com
sina:http://weibo.com/beautifulzzzz?is_all=1
[Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信的更多相关文章
- 真正的RISC-V开发板——VEGA织女星开发板开箱评测
前言 由于最近ARM公司要求员工"停止所有与华为及其子公司正在生效的合约.支持及未决约定",即暂停与华为的相关合作,大家纷纷把注意力投向了另一个的处理器架构RISC-V,它是基于精 ...
- iTOP-4418开发板和6818开发板-第五路串口介绍
iTOP-4418开发板和6818开发板 的除去默认 4 个串口的配置和用法. 4418 的开发板最多支持 5 路串口,如下图所示,4418 的 datasheet. 6818 的开发板最多支持 ...
- 基于讯为4412开发板的Android开发流程
讯为4412开发板 使用三星2410芯片,基于arm9架构,由于自己电脑硬件的局限,只能跑Android4.0.3系统. 1.Uboot这个直接使用官方镜像烧写就可以了,一般情况不用去重复烧写. 略 ...
- 漫谈LiteOS之开发板-LiteOS移植(基于GD32450i-EVAL)
1 为什么移植? 嵌入式设备的芯片型号和外设的差异较大,资源有限.而RTOS无法适配集成所有的驱动,因此会先适配部分开发板,然后通过移植使得适配更多的开发板. 可移植性是嵌入式操作系统与普通操作系统的 ...
- 迅为I.MX6开发板工业级嵌入式开发平台
迅为-i.MX6开发板是是基于ARM Cortex™-A9架构的高扩展性多核系列应用处理器, i.MX6系列芯片而且根据应用场合的不同,提供了可供选择的单核.双核和四核产品供客户选择.i.MX6系列的 ...
- #2020征文-开发板# 用鸿蒙开发AI应用(一)硬件篇
目录: 前言 开发板简介 产品特色及功能 产品参数 各个主板功能简介 Hi3516DV300 芯片手册 前言鸿蒙2.0的系统刚开源出来,华为志在打造1+8+N万物互联的全场景智慧生活,不仅是国产操作系 ...
- #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇
目录: 前言 HarmonyOS 简介 DevEco Device Tool(windows下) 获取源码(切换到ubuntu) 烧录程序(切换回windows) 前言上一篇,我们在 Win10 上用 ...
- 嵌入式开发板iTOP4412学习开发板
网站:http://www.topeetboard.com 淘宝:https://item.taobao.com/item.htm?_u=okcahs0f42a&id=38712193806 ...
- 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能
本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...
随机推荐
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- 关于如何提高Web服务端并发效率的异步编程技术
最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知 ...
- jQuery.template.js 简单使用
之前看了一篇文章<我们为什么要尝试前后端分离>,深有同感,并有了下面的评论: 我最近也和前端同事在讨论这个问题,比如有时候前端写好页面给后端了,然后后端把这些页面拆分成很多的 views, ...
- 设置line-height:1.5和line-height:150%或者line-height:150px的区别
直接正题: 看一下line-height可能的值: 其实可以分为两类: (1)不带单位的(如line-height:1.5),这种是推荐使用的: (2)带单位的(如line-heigth:30px/1 ...
- spring boot 实战:我们的第一款开源软件
在信息爆炸时代,如何避免持续性信息过剩,使自己变得专注而不是被纷繁的信息所累?每天会看到各种各样的新闻,各种新潮的技术层出不穷,如何筛选出自己所关心的? 各位看官会想,我们是来看开源软件的,你给我扯什 ...
- Java定时任务的常用实现
Java的定时任务有以下几种常用的实现方式: 1)Timer 2)ScheduledThreadPoolExecutor 3)Spring中集成Cron Quartz 接下来依次介绍这几类具体实现的方 ...
- spider RPC入门指南
本部分将介绍使用spider RPC开发分布式应用的客户端和服务端. spider RPC中间件基于J2SE 8开发,因此需要确保服务器上安装了JDK 8及以上版本,不依赖于任何额外需要独立安装和配置 ...
- AlloyTouch实战--60行代码搞定QQ看点资料卡
原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/kandian 先验货 访问DEMO你也可以点击这里 源代码可以点击这里 如你体验所见,流程的滚动的 ...
- OpenDigg前端开源项目周报1219
由OpenDigg 出品的前端开源项目周报第二期来啦.我们的前端开源周报集合了OpenDigg一周来新收录的优质的前端开发方面的开源项目,方便前端开发人员便捷的找到自己需要的项目工具等.react-f ...
- Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)
示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...