网站首页 > 教程分享 正文
最近根据项目需求,会用安卓上层应用直接与主板打交道,统称硬件吧,支配主板开锁,打印等功能,网上也有很多资料,但是我可以说,没有一个可以真正能用的,所以花了很多时间专门研究了串口开打,下图是主板示意:
安卓工业主板
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。不管是windows、linux、或是android操作系统,串口编程无非是以下几步:
打开串口
串口配置
串口操作(读写)
关闭串口
这个项目基于谷歌的开源项目android-serialport-api,是Android使用jni直接进行串口设备的读写的一个开源库,所以你不必担心NDK的门槛,项目就不过多介绍了,今天主要来介绍一下如何使用这个开源项目进行串口操作。
一、android-serialport-api简单介绍
android-serialport-api下载:https://github.com/cepr/android-serialport-api
android-serialport-api下有两个主要的类以及jni类和.so文件:
二、引入android-serialport-api
以androidStudio为例,用eclipse的朋友直接导入即可,源码就是eclipse版的
(1)、新建android项目,建包android-serialport-api,将调用c语言写成的动态链接库的java类,也就是第一步中介绍的两个类放入到src文件夹下的android_serialport_api包下,这里一定要将包名命名成这个,因为对JNI有一定了解的人就会知道,在写c语言链接库时候,函数的命名是和调用它的类所在的包名相关的,一旦包名与链接库中函数的命名不相符,就不能调用链接库的函数。jin
(2)、在src/main下新建jni、jinLibs目录,分别拷贝相关源码到相应的目录下,直接给图:
记得重新编译一下项目Bulid/Make Project,到这里,开源库基本上引入就结束了。
三、串口操作
(1)、串口的硬件地址以及波特率这两个参数是必须的,我新建了一个SerialPortUtil类,采用的单例模式,下图为开串口
(2)、发送数据给串口
(3)、接受串口返回数据
注意:
mInputStream.read(buffer)
这一句会阻塞主线程,假如没有数据返回,程序就会直接崩掉,我为了演示没有写线程操作,真正的应该是开启一个子线程来循环读取数据。
(4)、串口的关闭
好了,基本上流程就是这些了,至于如何处理以及优化,就看具体的需求了。
有任何问题,欢迎大家一起交流。
猜你喜欢
- 2024-10-28 Android开发基础入门(一):UI与基础控件
- 2024-10-28 Android开发新手入门(帧布局FrameLayout)
- 2024-10-28 Android开发者如何入门AI?试试在Android上用AI识别物体
- 2024-10-28 安卓零基础培训入门课程学习(安卓基础知识快速入门)
- 2024-10-28 Android零基础入门|滚动视图ScrollView
- 2024-10-28 Android系列之Activity入门介绍(activity an)
- 2024-10-28 安卓系统引领下一代制造业,四个步骤快速入门工业4.0
- 2024-10-28 Android实战004:Hello World入门实例体验
- 2024-10-28 Android程序员 如何入门iOS ——故事从这里开始
- 2024-10-28 Android开发新手入门(相对布局RelativeLayout)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)