谷歌官网提供的串口库的奇偶校验位数据位停止位都是默认的,如果有项目需要配置固定的参数的时候,很显然谷歌官网提供的是不可行的,但是是可参考的谷歌开源串口库,下面这边文章也仅仅是作为自己的一个踩过的坑的记录,本篇文章主要参考了一位简书上的大哥的文章,Android 串口通信
在上一篇已经讲解了谷歌开源的串口库的一些东西,所以在这篇里面就不过多口舌了
项目结构
看过我上篇文章的笔友会发现其实和上篇的东西大差不差,项目结构以及类的划分基本一致,主要改动还是java向jni文件里传值多了三个参数,这个native方法就是用来和jni里面的C通信的,比谷歌提供的又新增了三个参数
/**
* 打开串口
*
* @param device 串口设备文件
* @param baudRate 波特率
* @param parity 奇偶校验,0 None(默认); 1 Odd; 2 Even
* @param dataBits 数据位,5 ~ 8 (默认8)
* @param stopBit 停止位,1 或 2 (默认 1)
* @param flags 标记 0(默认)
* @throws SecurityException
* @throws IOException
*/
private native static FileDescriptor open(String path, int baudRate, int parity, int dataBits,
int stopBit, int flags);
同样修改后发现居然运行不起来,百度上找了一大堆文章都没能解决问题,想起来之前一位同事说简书要比csdn上的可靠,所以一大早来到公司就上简书搜索,果然不出所料,才看了两篇就找到想要的答案了,就是上面参考的那位大哥的文章,文章不繁琐,结构清晰,做过硬件开发的Android或者玩过串口的朋友一看就知道怎么回事,好了废话不多说,在这里还有两个文件没有贴出来,下面贴一下serial-port.cpp代码
//
// Created by Administrator on 2019\1\29 0029.
//
#include <jni.h>
#include <string>
#include