(2022)android串口开发总结

最近公司有个项目开发需要用到串口开发, 就记录一下遇到的一些问题
1.高版本的 gradle 已经废弃了 allprojects 在 settings.gradle 中 repositories 添加以下maven仓库(不添加任然无法加载SerialPort);
2.串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹;
3.一、名词解释:
1.波特率:用来表示通信速度的参数,它表示每秒钟传送的 bit 的个数;
2.数据位:通信中数据位的参数;
3.停止位:表示单个包的最后一位,停止位不仅仅是表示传输的结束,并且提供上位机正时钟同步的机会;
4.校验位:串口通信中一种简单的检错方式(偶校验[2]、奇校验[1]、无校验[0]);
二、SerialPort的函数分析:
谷歌为开发者提供了一个串口通讯的工具类SerialPort,其中SerialPort中有8个函数,其中有7个是公共方法提供给使用者调用;

1)public static void setSuPath(String suPath)

    用于设置 su 路径 默认的路径 /system/bin/su,(一般不会使用)

2)static String getSuPath()

    用于获取su路径(一般不会使用)

3)public InputStream getInputStream()

    获取输入流;通过此方法可以获取设备向上位机发送过来的数据。

4)public OutputStream getOutputStream()

    获取输出流;通过此方法可以向设备发送操作指令。

5)public native void close();

    关闭串口;通过此方法关闭串口。

6)public static Builder newBuilder(File device, int baudrate)

7)public static Builder newBuilder(String devicePath, int baudrate)

    用于构建串口对象。

8) private native FileDescriptor open(String absolutePath, int baudrate, int dataBits, int parity, int stopBits, int flags);

    用于开启串口通讯,私有的方法,开发者只需创建一个SerialPort对象,函数会自动调用。

虽然串口通讯使用到进程、Linux指令、JNI…,但抛开现象看本质,最终目标还是获得一个输入输出流去进行读写操作

三、SerialPort打开串口的流程
1.通过Runtime,获取当串口进程。

2.向Linux内核发送一个"chmod 666 "指令设置串口进程的权限。

3.通过JNI方法获取文件描述符对象。

4.通过文件描述符对象获取输入输出流。

————————————————
版权声明:本文为CSDN博主「地心铁头娃」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42111674/article/details/123737732

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值