[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 ...
随机推荐
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- 关于python的bottle框架跨域请求报错问题的处理
在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200.url直接在浏览器访问也是正常的,浏览器按F12 ...
- vs2010静态链接MFC库报链接错误
由于需要将MFC程序在其它电脑上运行,所以需要将动态链接的MFC改成静态链接,本以为很简单,没想到链接的时候出现下面的链接错误: uafxcw.lib(afxmem.obj) : error LNK2 ...
- %iowait和CPU使用率的正确认知
resources 理解 %IOWAIT (%WIO) LINUX系统的CPU使用率和LOAD Linux Performance Observability Tools How Linux CPU ...
- Android—Volley:接收服务端发送的json数据乱码问题解决
new JsonObjectRequest中重写方法parseNetworkResponse,内容如下: /** * 重写此方法不会导致乱码 */ @Override protected Respon ...
- SMBus set up a 2-byte EEPROM address for read/write
Sequencer Engine spec: http://www.analog.com/media/en/technical-documentation/data-sheets/ADM1260.pd ...
- 如何通过Git GUI将自己本地的项目上传至Github
最近在学习node.js和react,顺便复习了下AngluarJS相关的东西,写了些小demo想放在GitHub上,之前仅限于只申请了GitHub账号从没用过,今天花半天时间查资料认真学习Githu ...
- mac下生成ssh keys 并上传github仓储
使用github仓储需要本机生成一个公钥key 添加到自己的git账户SSH keys中 mac 生成方法: 1. 打开终端 输入 ssh-keygen 然后系统提示输入文件保存位置等信息 ...
- centos 6.5 升级php
1>追加CentOS 6.5的epel及remi源. # rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-re ...
- 虚拟机体验之 Xen 篇 —— 令人脑洞大开的奇异架构
这一篇我要体验的虚拟机系统是 Xen.在虚拟机领域,Xen 具有非常高的知名度,其名字经常在各类文章中出现.同时 Xen 也具有非常高的难度,别说玩转,就算仅仅只是理解它,都不是那么容易.之所以如此, ...