Android & MCU之间的串口通信(收发数据)

本文介绍了如何实现Android设备与MCU间的串口通信,包括配置Android项目、设置串口参数、打开和关闭串口、发送及接收数据的详细步骤。通过使用GitHub上的android-serialport-api项目,实现了串口通信功能,适用于Android应用程序与MCU设备间的数据交互。
摘要由CSDN通过智能技术生成

 最近一个项目是android和MCU之间的串口指令数据通信,捣鼓了很久,也找了很多网上的资料。最后将实现的总结记录下来。

使用的是GitHub中的一个项目,下载地址:https://github.com/cepr/android-serialport-api

下载解压后会出现两个文件夹,我们使用的是这个,如图:

复制整个文件夹到项目的java目录下,不要变更名字,名字是跟里面的东西相关的,变更后会报错,如图:

再将android_serialport_api下的除了drawable下的其他资源文件复制粘贴到项目中对应的文件下,如图:

再将jni和lib下的文件也都复制到项目中,如图:

接下来配置model的build.gradle

在android下的defaultConfig 添加ndk,如图:

 

ndk{
    abiFilters "armeabi-v7a"
}
ndk{
    moduleName "serial_port"
    abiFilters "armeabi", "armeabi-v7a", "x86"
}
ndk{
    ldLibs "log"
}

在android下添加,引用jni:

sourceSets{
    main{
        jni.srcDirs = []
    }
}注:targetSdkVersion版本要22以下,22以上会报错奔溃

至此,配置完成。接下来就是打开和使用串口通信了

串口使用到的数据定义:

/**
 * 标记当前串口状态(true:打开,false:关闭)
 **/
public static boolean isFlagSerial = false;
public static SerialPort serialPort = null;
public static InputStream inputStream = null;
publi
  • 7
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
UART(通用异步收发器)是一种常用的串行通信协议,它允许数据的双向传输。在Arduino Uno和NodeMCU之间进行通信时,我们可以利用它来实现数据的传输和接收。 首先,需要将Arduino Uno和NodeMCU之间的串行通信引脚连接起来。Arduino Uno的UART引脚包括TX(发送)和RX(接收),分别连接到NodeMCU的RX和TX引脚。 在Arduino Uno上编写代码,使用Serial对象进行数据的发送和接收。可以使用Serial.begin()函数来初始化串口,设置波特率等参数。然后,可以使用Serial.print()或Serial.println()函数来将数据发送到NodeMCU上。 例如,发送数据可以使用以下代码: Serial.println("Hello from Arduino!"); 在NodeMCU上编写代码,也使用Serial对象来接收从Arduino Uno发送的数据。与Arduino Uno类似,可以使用Serial.begin()函数初始化串口并设置波特率等参数。然后,使用Serial.read()函数来接收数据。 例如,接收并打印从Arduino Uno发送的数据可以使用以下代码: String data = Serial.readString(); Serial.println(data); 通过以上步骤,就可以在Arduino Uno和NodeMCU之间进行基于UART的通信了。可以将数据从Arduino Uno发送到NodeMCU,或者从NodeMCU接收数据并在串口监视器上显示出来。 需要注意的是,Arduino Uno和NodeMCU的串口引脚可能不同,所以需要连接正确的引脚。另外,确保两个设备的波特率设置相同,以保证数据的正确传输。 通过UART进行Arduino Uno和NodeMCU之间通信,可以实现数据的可靠传输和接收,为两者之间数据交换提供了一种简单而有效的方式。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值