AndroidSerialPort

Android 串口通信,基于谷歌官方android-serialport-api编译


github地址:github.com/AIlll/Andro…


使用说明

  1. 在Module下的 build.gradle 中添加
//最新版本查看github项目
implementation 'com.aill:AndroidSerialPort:x.x.x'
复制代码
  1. 打开串口
/*** @param 1 串口路径* @param 2 波特率* @param 3 flags 给0就好*/
SerialPort serialPort = new SerialPort(new File("/dev/ttyS1"), 9600, 0);
复制代码
  1. 往串口中写入数据
//从串口对象中获取输出流
OutputStream outputStream = serialPort.getOutputStream();
//需要写入的数据
byte[] data = new byte[x];
data[0] = ...;
data[1] = ...;
data[x] = ...;
//写入数据
outputStream.write(data);
outputStream.flush();
复制代码
  1. 读取串口数据

读取数据时很可能会遇到分包的情况,即不能一次性读取正确的完整的数据

解决办法:可以在读取到数据时,让读取数据的线程sleep一段时间,等待数据全部接收完,再一次性读取出来。这样应该可以避免大部分的分包情况

//从串口对象中获取输入流
InputStream inputStream = serialPort.getInputStream();
//使用循环读取数据,建议放到子线程去
while (true) {if (inputStream.available() > 0) {//当接收到数据时,sleep 500毫秒(sleep时间自己把握)Thread.sleep(500);//sleep过后,再读取数据,基本上都是完整的数据byte[] buffer = new byte[inputStream.available()];int size = inputStream.read(buffer);}
}
复制代码
  1. 修改设备su路径

打开串口时,会检测读写权限,当没有权限时,会尝试对其进行提权

//默认su路径是/system/bin/su,有些设备su路径是/system/xbin/su
//在new SerialPort();之前设置su路径
SerialPort.setSuPath("/system/xbin/su");
复制代码
  • ByteUtil类:工具类,字符串转字节数组,字节数组转字符串
  • SerialFinder类:用于查找设备下所有串口路径

github地址:github.com/AIlll/Andro… ,如对你有帮助,求给个start哦,如有问题以及更好的建议,欢迎提出来相互交流

转载于:https://juejin.im/post/5bbaad16f265da0ac07c6a9c

AndroidSerialPort:安卓串口通信库相关推荐

  1. android c语言串口通信,安卓串口通信能用的modebus CRC16计算,附对应的C语言CRC16

    最近写安卓串口通信需要用到modebus 的crc16通信,网上找了很多都是字符串的,我需要byte的,由于java没有无符号数,转换有点小麻烦,对着C一步步测试,最终测试无误 代码如下: //jav ...

  2. boost网络串口通信库

    一.前言 前面我写了一篇<boost开发网络库>一文,该文章介绍了使用boost库开发一个高效.稳定的网络通信库,其中用到了c++准标准库boost的asio网络通信模块,本文将要讲的是使 ...

  3. PySerial:Python串口通信库的详细介绍、安装及使用方法攻略

    PySerial:Python串口通信库的详细介绍.安装及使用方法攻略 一.PySerial 简介 PySerial 是 Python 的一个串口通信库,支持不同平台下的串口操作.在 Python 应 ...

  4. 安卓串口通信无法获取串口地址,无法打开串口权限

    本周在安卓三防平板上尝试串口通信,遇到权限问题折腾了6天,这期间在csdn.博客园.简书等论坛查询报错代码,报错代码如下所示. avc: denied ( open / for path=" ...

  5. 安卓串口通信 CH340 341

    最近项目需要实现手机与单片机进行串口通信,就在网上搜罗了一下这方面的demo,刚好搜到CH340 341系列串口封装好的jar,可以很方便的实现安卓手机通过usb转串口与单片机实现通信,这样,外出调试 ...

  6. codesys中打开linux端的串口_干货分享——安卓串口通信

    1 引言 串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.串口通信(Serial Communicatio ...

  7. EC20 TCP/IP AT指令(安卓串口通信开发)

    指令过程 1.等待串口接收字符串"RDY"模块系统启动成功. 2.发送"AT+CPIN?\r",等待"+CPIN: READY",SIM准备 ...

  8. 安卓APP使用CH340进行串口通信

    大纲 缘由 解读安卓串口通信流程 1. 下载lib库 2. 初始化流程 3. 收发流程 编写串口通信APP 1. 导入lib库 2. 布局 3. 编写java代码 4. 测试 5. USB插拔检测 附 ...

  9. python第三方库之学习pyserial库--串口通信

    pyserial串口通信库 1.安装pyserial库 2.填写串口参数的注意事项 3.简单封装一下 4.碰到的bug 1.安装pyserial库 pip install pyserial versi ...

最新文章

  1. 2022-2028年中国环氧结构胶行业市场研究及投资前景预测报告
  2. MySQLFabric概述
  3. 天猫精灵怎么和台式计算机链接,天猫精灵怎么连接电脑
  4. 保护模式及其编程——实模式与保护模式的切换
  5. STM32的8种GPIO输入输出模式深入详解
  6. Improving RGB-D SLAM in dynamic environments: A motion removal approach
  7. 《JavaScript面向对象编程指南》——1.7 训练环境设置
  8. java 读取图片给 matlab_如何将MATLAB图像处理程序转换为java?
  9. 线性代数学的中国根源
  10. Linux下main函数启动过程【程序员自我修养笔记】【自用】
  11. Solr连接MYSQL导入源数据生成索引
  12. Get value from agent failed:ZBX_TCP_READ() timed out(亲测)
  13. MyEclipse6.5的反编译插件的安装
  14. 代的划分是根据计算机的运算速度来划分,计算机的发展经历了四代,代的划分是根据计算机的运算速度来划分....
  15. 前端学习/资源/工具网站
  16. Symfony2插件FOSUserBundle的使用说明
  17. 中国大陆身份证正则表达式(严格验证省份和日期)
  18. AdSense后台添加美国税务信息W-8BEN纳税表秒过的详细操作图文教程
  19. 美团App页面视图可测性改造实践
  20. 盖泽尔智力测试软件,宝宝聪明不聪明?只需测一测,不用去医院,家长在家轻松筛查...

热门文章

  1. au3 mysql_autoit3 下载|autoit(au3.0)英文官方安装版 3.3.12.0 - 系统天堂
  2. 华为HCNA实验18-RIP静默接口
  3. 十个酷炫的人工智能开源项目
  4. 学习java之路之第一周html
  5. 系统运维:北京某万相融通高级工程师笔试题
  6. 安卓市场上哪个便签好用 比较好用的便签软件推荐
  7. oracle 12c tns,Liunx Oracle 12C TNS连接失败的解决方案
  8. CentOS7 安装宝塔+安全狗
  9. MongoDB 的应用开发者生态建设调查及启示
  10. 无线远距离WiFi模块,无线图传技术,在远距离传输领域的应用