先说我的应用场景,一块带串口的android板子跟一个外设通过串口直接通信,控制这个外设的启停。如图1(公司规定不能透露太多,只拍了一部分


图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; //波特率

图3

2、打开串口

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设备发送数据)

图6

IDateDeal是一个自定义接收数据的接口

private interface IDataDeal {

        public void onDataReceived(byte[] buffer, int size);

}

ReadThread 顾名思义这个是读取数据的线程

图7

三、关闭串口

图8

至此 所有的流程都走完了,基本功能也都实现了。祝各位一切顺利....

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. Android(安卓)基础知识4:四大组件之 ContentProvider(外共享数据)
  5. android连接远程数据库教程1
  6. 20172314 2017-2018-2《程序设计与数据结构》第十一周学习总结
  7. Android(安卓)目前占据智能手机销售领域的主导地位
  8. Android(安卓)入门(7)——文件持久化存储
  9. android 多用户笔记

随机推荐

  1. 程序员撸码神器VSCODE
  2. 重载get
  3. 安装配置php无法运行提示0xc000007b
  4. WordPress社区商城小程序“酱茄pro小程序
  5. pdo操作
  6. 碰见提示格式化怎么解决?
  7. 桌面文件误删怎么找回
  8. 矩阵的乘法运算与css的3d变换(transform)
  9. PHP数据库操作:PDO基本操作
  10. 【Redis】PHP操作Redis的命令大全