㈠ android UART 串口通信
最近有项目需要实现windows机器和Android开发版进行UART串口通信,经过3天查找尝试,特记录一下最终方案,希望之后的同行少走弯路,最后在git上回开源我最终的方案希望大家支持。
Android 3.0.1
Gradle 4.1
ARM开发版 : RK3399
PC机器:Win10
开发机器:MAC 10.13.3
先上图
由于 android-serialport-api 项目中的so使用较old的ndk编译,所以在对于Android 6.0 以上版本兼容的时候会报错 dlopen failed: "has text relocations" 。且使用的mk进行编译,特升级为用cmake编译。
升级 android-serialport-api
项目结构:
app对应原项目中的各个Activity, androidserial 是mole 对应编译之前的so,还有API的封装。可以直接引用androidserial,调用方法参考app目录下的activity。
注意 关于权限!
当接入开发板后如果发现 Error You do not have read/write permission to the serial port 需要root 权限 ,在开发者模式中开启root 权限 adb和应用
使用一下命令开启Android对串口的读写权限
setenforce 0 : 关闭防火墙,有人说关键是这,但是我的环境不用关闭,只要给权限就可以
注意 关于ttyS1 - 6 ttyS1 - 6 对应的是 UART 串口1-6 一般都是一一对应的。这个具体要看一下开发板的说明。
记录的比较糙,还请见谅,如有问题请留言,我看到后肯定回复。项目主要看结构,剩下的都是复制黏贴的事。 git地址:https://github.com/braincs/AndroidSerialLibrary
㈡ 我想用Android手机与单片机进行串口通信,从而可以控制单片机,该如何实现呢
不过你还得注意的是手机的USB转串口电平是TTL电平,所以你的单片机板子的串口也得是TTL,在就是分清楚交叉连接或者直连。
㈢ 我想用Android手机与单片机进行串口通信,从而可以控制单片机,怎么实现
代码不会写!但是给你个思路:
1、单片机串口转WIFI了,那么WIFI传出来的数据,手机接收到要有软件解码识别它
2、手机软件通过WIFI将数据传到单片机,这样交互就可以通信了。控制协议可以自己设定。
㈣ Android开发之串口通信:AndroidSerialPort
Android 串口通信,基于 谷歌官方android-serialport-api 编译
项目github地址: https://github.com/AIlll/AndroidSerialPort
读取数据时很可能会遇到分包的情况,即不能一次性读取正确的完整的数据
解决办法:可以在读取到数据时,让读取数据的线程sleep一段时间,等待数据全部接收完,再一次性读取出来。这样应该可以避免大部分的分包情况
只接收一条数据的情况下,以上方法可以应对数据分包,数据量多的情况下需要考虑是否会因为sleep导致接收多条数据,可以根据通信协议核对包头包尾等参数。
打开串口时,会检测读写权限,当没有权限时,会尝试对其进行提权
㈤ android蓝牙串口通讯助手怎么用
蓝牙客户端通信工具(即:蓝牙从机模式),可进行蓝牙串口通信测试。能连接单片机及PC的蓝牙串口。
手机蓝牙串口助手是一个J2ME程序,可以运行在支持蓝牙和J2ME的手机上,通过蓝牙转串口模块的配合使用,可以在手机上控制串口设备,例如modem、LCD显示屏。
简单说,你不必太在意这个工具,是开发人员工具,用来让你手机与其他IT设备连接通讯用的。
当你电脑需要通过蓝牙控制 手机 打电话,发短信,用到的就是蓝牙串口(com)通道。你手机可以通过蓝牙关关电脑,也是用的蓝牙串口通道。
不用太在意,这些功能用专门软件实现比较好,不需要在开发。