当前位置:首页 > 谈天说地

浅谈Android串口通讯SerialPort原理

34资源网2022-09-09368

前言

通过前面这篇文章android串口通讯serialport的使用详情已经基本掌握了串口的使用,那么不经想问自己,到底什么才是串口通讯呢?串口通讯(serial communication),设备与设备之间,通过输入线(rxd),输出线(txd),地线(gnd),按位进行传输数据的一种通讯方式。cpu 和串行设备间的编码转换器(转换器(converter)是指将一种信号转换成另一种信号的装置。信号是信息存在的形式或载体。在自动化仪表设备和自动控制系统中,常将一种信号转换成另一种与标准量或参考量比较后的信号,以便将两类仪表联接起来,因此,转换器常常是两个仪表(或装置)间的中间环节。)。当数据从 cpu 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹;

一、名词解释

  • 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对象,函数会自动调用。

三、serialport打开串口的流程

  • 1.通过runtime,获取当串口进程。
  • 2.向linux内核发送一个"chmod 666 "指令设置串口进程的权限。
  • 3.通过jni方法获取文件描述符对象。
  • 4.通过文件描述符对象获取输入输出流。

四、疑惑

在上述的加载流程中,不禁有一个疑问,为什么serialport中的open()、close()函数都用native去修饰,不用不行么?

于是我从open()入手,open返回一个对象叫filedescriptor(文件描述符),那么这个类有什么作用呢?

于是我打开了filedescriptor,注释是这么描述的:文件描述符类的实例充当底层特定于机器的结构的不透明句柄,该结构表示打开的文件、打开的套接字或另一个字节源或汇。文件描述符的主要实际用途是创建一个fileinputstream或fileoutputstream来包含它。应用程序不应该创建自己的文件描述符。

 结合《jni编程指南》推荐使用场景

 既然串口通讯使用到了jni,那么也将继承jni编程的缺点,app的兼容性将会变差。

五、总结

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

到此这篇关于浅谈android串口通讯serialport原理的文章就介绍到这了,更多相关android serialport 内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

看完文章,还可以扫描下面的二维码下载快手极速版领4元红包

快手极速版二维码

快手极速版新人见面礼

除了扫码领红包之外,大家还可以在快手极速版做签到,看视频,做任务,参与抽奖,邀请好友赚钱)。

邀请两个好友奖最高196元,如下图所示:

快手极速版邀请好友奖励

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

本文链接:https://www.34l.com/post/21909.html

分享给朋友:

相关文章

英国正在调查一种新出现的变异病毒

英国正在调查一种新出现的变异病毒

新华社伦敦3月11日电(记者张家伟 金晶)英国英格兰公共卫生局11日表示,该国近期确诊两例感染了一种新的变异新冠病毒的病例,目前正在对这一新的变异病毒开展调查。…

引流文案微信推广(微商引流推广文案模板)

引流文案微信推广(微商引流推广文案模板)

大家好啊!今天又跟大家分享小技巧啦~往下看↓↓↓ 首先说一下什么样的文案是引流型的?实际上,一句话是将公共域流量定向到您的私有域流量池。其目的是先引流然后慢慢进行信任激活变现。 在标题方面,通常有以下几种类型,今天为大家详细描述一下。 一…

刘强东章泽天携手布局,“大厂”为何掀起私募热潮?

刘强东章泽天携手布局,“大厂”为何掀起私募热潮?

编者按:本文来自雷达财经(ID:leidacj),创业邦经授权发布。 作者|张凯旌 编辑|深海 京东在私募股权投资上又有新动作。 11月29日,由刘强东、章泽天、李瑞玉共同持股的海南三亚天博产业私募基金管理有限公司(下称“海南天博私…

语音导出软件哪个好用(免费的语音打包软件推荐)

语音导出软件哪个好用(免费的语音打包软件推荐)

有些QQ用户想把苹果手机或安卓手机QQ语音消息导出到电脑上,如保存为mp3格式文件,方便在电脑上的任意播放器中进行播放,或者想将某人发给自己的一些语音消息串联合并为一个MP3文件。以前手机QQ语音消息是保存在手机上的,但随着QQ版本的升级,…

dnf宇宙恶魔怎么打单人机制(单人宇宙恶魔罗什打法攻略)

在DNF游戏中,大家应该都认识宇宙恶魔罗什吧,这是一个非常强的BOSS,很多小伙伴都卡在这里,那么要怎么打呢,感兴趣的小伙伴就跟随小编一起来看看吧。 dnf单人宇宙恶魔罗什攻略 之所以打不过是因为玩家不清楚其机制。 进入BOSS战关卡后,罗…

物联网应用案例分析(物联网技术的应用案例)

物联网应用案例分析(物联网技术的应用案例)

近日,工信部公布了44项移动物联网应用案例入选名单。 案例主要面向三大重点方向: 一是围绕工业制造、仓储物流、智慧农业、智慧医疗等领域的产业数字化应用; 二是围绕智能计量、消防烟感、共享单车、环保监测等领域的治理智能化应用; 三是围绕消费…