Android(安卓)串口通信
先说我的应用场景,一块带串口的android板子跟一个外设通过串口直接通信,控制这个外设的启停。如图1(公司规定不能透露太多,只拍了一部分)
开发必备:
1、开源项目
现在关于android串口通信都是根据Google提供的开源项目在实现。
Google开源项目地址
GitHub下载地址
2、了解串口通信流程。
流程:打开串口(需要配置串口号和比特率) ---> 写串口 ---> 读串口 ---> 关闭串口
注意:1)串口号来源:看你的串口线插在哪个串口上,以图1为例,如果接的是com1口,那么串口号我这边选择的/dev/ttys0,一次类推。/dev/ttys0是通过ADReaderInterface.GetSerialPortPath()搜索到的串口路径。
2)比特率来源:接入设备的波特率有厂商指定。直接跟设备商要就行。
3、对jni有一定的了解
关于Android 串口的使用google并没有向上层开源,所以会用到jni去调用C层的
jni的调用 网上已经很多博客都有讲解,自行去百度吧。
项目结构
图2注:加入jni文件夹,libs文件和src中加入android_serialport_api文件夹(包名一定是这个,不能改)
接下来就是coding了,按流程来。
一、配置串口号和比特率,打开串口
1、我这边是 直接搜索所有的串口号地址加到spinner中,用户根据需求自己选择。
private static int baudrate = 115200; //波特率
图32、打开串口
android_serialport_api.SerialPort serialPortMenSuo = null;
serialPortMenSuo = new android_serialport_api.SerialPort(
new File(sn_mensuo.getSelectedItem().toString()),baudrate,0);
注:android_serialport_api.SerialPort 这个方法在上面复制进来的src下的SerialPort.java文件下。参数含义见下图
图4二、读写数据
1、写数据(向串口设备发送命令)
图5把字符串转成字节数组。
2、读数据(串口设备向android设备发送数据)
图6IDateDeal是一个自定义接收数据的接口
private interface IDataDeal {
public void onDataReceived(byte[] buffer, int size);
}
ReadThread 顾名思义这个是读取数据的线程
图7三、关闭串口
图8至此 所有的流程都走完了,基本功能也都实现了。祝各位一切顺利....
更多相关文章
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Android(安卓)基础知识4:四大组件之 ContentProvider(外共享数据)
- android连接远程数据库教程1
- 20172314 2017-2018-2《程序设计与数据结构》第十一周学习总结
- Android(安卓)目前占据智能手机销售领域的主导地位
- Android(安卓)入门(7)——文件持久化存储
- android 多用户笔记