[Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信

简介:
+关注继续查看



一、前言

下面是本系列文章的前几篇:

前几篇文章中介绍了如何实现软硬件和云的通信:
这篇解决edison开发板控制IO口问题!


二、发现MRAA能解决问题过程:

下面是我发现MRAA能够解决问题的过程:

  1. 爱迪生首页 https://software.intel.com/en-us/iot/hardware/edison/dev-kit
  2. 嵌入式linux接口lib MRAA
  3. 英特尔文档搜索MRAA https://software.intel.com/en-us/iot/documentation?field_topic_tid=20780&value=80494
  4. 基础开发 https://software.intel.com/en-us/node/675522

为什么要提MRAA? 因为Edison开发板的开发包中提供了两种方式控制外设,其一是利用Intel提供封装好的各种常见的传感器模块的驱动,名叫:UPM 。另一种是更底层一点,直接操作UART\SPI\I2C\IO等设备的方法:

20885221.jpg


三、进一步了解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

LINKhttps://github.com/intel-iot-devkit/mraa
INCLUDE:PWM、IIC等底层操作的库,也有简单demo及文档介绍。


四、浏览基础开发,到实现UART

步骤1、 根据 Blinking an LED using C/C++ 教程可以快速建立一个控制LED闪烁的工程,之前几个都是做过的(没必要看)
步骤2、 在eclipse的help中可以新建更多因特尔工程:控制LED闪烁、模拟输入检测、数字输入、数字输出等...

这些的引脚在板子正面写着,有电源组、模拟输入组和数字输出组,P8 P4等都在数字组。

eclipse中可建的工程

步骤3、 参考github中mraa中的example中的串口例子,实现爱迪生开发板和PC通过串口通信。
LINKhttps://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");
}

至此,可以实现爱迪生开发板串口读取数据,接下来研究蓝牙平面定位



本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/6064176.html,如需转载请自行联系原作者

相关文章
|
5月前
|
缓存 物联网
ARM6818开发板的系统IO(文件IO)与开发板屏幕控制
ARM6818开发板的系统IO(文件IO)与开发板屏幕控制
|
8月前
|
Java Unix Windows
【Java技术指南】「Java8技术盲区」让我们来看看新一代IO流的开发指引(流升级功能体系)
【Java技术指南】「Java8技术盲区」让我们来看看新一代IO流的开发指引(流升级功能体系)
108 0
|
8月前
|
固态存储 测试技术 Linux
文件IO操作开发笔记(二):使用Cpp的ofstream对磁盘文件存储进行性能测试以及测试工具
在做到个别项目对日志要求较高,要求并行写入的数据较多,尽管写入数据的线程放在子线程,仍然会造成界面程序的假死(实际上Qt还是在跑,只是磁盘消耗超过瓶颈,造成假死(注意:控制台还能看到打印输出,linux则能看到打印输出)。 本篇升级了测试工具,并且测试了ofstream在USB3.0和M.2SSD上的写入性能。
文件IO操作开发笔记(二):使用Cpp的ofstream对磁盘文件存储进行性能测试以及测试工具
|
8月前
iO开发 -Masonry学习,让你一看就会用,一看就能上手项目
iO开发 -Masonry学习,让你一看就会用,一看就能上手项目
40 0
iO开发 -Masonry学习,让你一看就会用,一看就能上手项目
|
8月前
|
固态存储 测试技术 Linux
文件IO操作开发笔记(一):使用Qt的QFile对磁盘文件存储进行性能测试以及测试工具
在做到个别项目对日志要求较高,要求并行写入的数据较多,尽管写入数据的线程放在子线程,仍然会造成界面程序的假死(实际上Qt还是在跑,只是磁盘消耗超过瓶颈,造成假死(注意:控制台还能看到打印输出,linux则能看到打印输出)。   本篇开发了测试工具,并且测试了QFile在USB3.0和M.2SSD上的写入性能。
文件IO操作开发笔记(一):使用Qt的QFile对磁盘文件存储进行性能测试以及测试工具
|
9月前
|
Ubuntu Linux 开发工具
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
69 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
|
9月前
|
PHP
关于 php使用扩展控制树莓派io 驱动超声波测距
关于 php使用扩展控制树莓派io 驱动超声波测距
45 0
关于 php使用扩展控制树莓派io 驱动超声波测距
|
10月前
|
芯片 开发者 异构计算
FPGA 开发板安装指导-IO 自测试指导|学习笔记
快速学习 FPGA 开发板安装指导-IO 自测试指导
203 0
FPGA 开发板安装指导-IO 自测试指导|学习笔记
|
数据库
操作系统第五章_01 IO设备的基本概念和分类 IO控制器 IO控制方式
操作系统第五章_01 IO设备的基本概念和分类 IO控制器 IO控制方式
137 0
操作系统第五章_01 IO设备的基本概念和分类 IO控制器 IO控制方式
|
IDE 开发工具 内存技术
推荐一种超简单的硬件位带bitband操作方法,让变量,寄存器控制,IO访问更便捷,无需用户计算位置
51 单片机中通过关键字 sbit来实现**位**定义,操作时除了被操作的那一位发生改变之外,其它位不受影响。不过在STM32里面就没有 sbit 关键字了,不能直接对寄存器的进行单个位操作,如果你想单独修改寄存器某一位的话,其实还是有办法的—位带操作。
303 0
推荐一种超简单的硬件位带bitband操作方法,让变量,寄存器控制,IO访问更便捷,无需用户计算位置