说明
文章首发于HURUWO的博客小站,本平台做同步备份发布。
如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览。
原文链接 2020上半年最好的android串口开发入门指南直接点击即可前往访问。
一些预备知识
物联网开发开发是时下热门的行业。Android系统自然也能进行物联网开发。除开Android本身自带的模块还有一类通过外部链接的设备需要通过串口来进行通信。本人在做完两个相关的抓娃娃和寄存柜项目之后觉得需要总结一点东西给大家。
关于串口
串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
当然具体是那种协议和你选择的硬件有关,将你的硬件插到对应协议的串口口即可。
开发前的准备
1.检查你的开发板设备,包括开发板信息,开发板上面包含的模块信息。是否有Wifi模块 蓝牙模块 指定接口等。还有一方面就是关于开发板系统的信息,开发板的系统版本。如果需要特别定制,可以和厂商商量。
关于系统定制
某些特殊的板块需要隐藏状态栏不能被下拉,否则会被退出应用。还有一方面就是可以定制取消掉下导航栏。
2.检查你的硬件装备
正确连接你的设备,向你的硬件提供商索要开发资料。基本的资料包括硬件的通讯命令格式。当然更好的是如果能要到开发程序资料。比如android程序或者源码那就更好了。
3.正确的连接,测试你的硬件与系统
Android串口助手
下载一个串口调试助手,按照资料输入命令。测试是否能够成功的启动设备。并且收到对应的返回数据。
开发阶段
需要一点点的JNI知识和一点点Android多线程开发经验
整体的开发流程如下:打开指定串口–>开启接收数据线程(readthead)–>发送串口数据–>接收数据处理返回信息–>关闭接收数据线程(readthead)–>关闭串口。
导入so库
里面封装了c层代码调用底层代码的通信方式,如果你们喜欢改东西的话。可以自己改着玩,不过我觉得没有必要,因为这些代码已经封装的很好了。直接使用即可。
至于通过c代码如何生成相应的so文件,以及如何java层调用c层代码都是很基础的东西啦。
我不想在这里展开大篇幅的讲JNI,因为串口通信其实用的JNI知识不多。
首先把JNI相关代码导入到自己的工程里面:
先看下目录结构吧: