android串口通信

android 串口学习

最近又有项目要用到串口通信,想在网上找一个好用的串口调试工具他们的真难啊,95%的博客提供的demo都是个半成品,

核心代码有用,但demo不能用与调试用,给初学者带来很多不便,

主要有以下问题:

1没有选这串口文件地址的下拉框,

2也没有调节波特率的地方,

3没有定时发送数据测试的功能

4没有文本转16进制的功能(硬件数据传输一般用16进制)

调试界面源码1


业务优化源码2,采用队列排队发送数据,发送,接收处于不同线程中,互补干扰,逻辑代码清晰

如图下这么方便发送数据,接收数据

 



核心类

SerialPortFinder: 获取设备串口通信的文件信息类

SerialPort: 根据串口文件信息建立通信通道

SerialHelper: 业务数据封装类

SerialPortService: 后台服务,定时发送指令,获取数据

1 SerialPortFinder. getDrivers();

 读取”/proc/tty/drivers”路径下文件内容,获取硬件通信地址名称流程图



2 SerialPortFinder. Driver.getDrivers()

 在”/dev”目录下查找文件的开始名称等于硬件通信地址名称的文件


3 建立串口连接

    判读串口文件是否有读写权限

   获取su进程执行一条chmod666 ….命令

   通过jni提供的open方法获取FileDescriptor对象,

   建立通信的输入输出流