JAVA串口通讯(3)

        上一篇对串口进行了简单的测试,在实际的应用中串口是硬件和上位机的通讯桥梁,这一篇我们通过编程方式来完成访问和控制串口,本次仍然需要用虚拟串口和阿猫串口调试工具配合完成,这样比较简单也不需要添加硬件,在需要连接真是设备的时候再使用USB转串口方式连接。没有安装虚拟串口和调试工具的同学,请参考上一篇完成安装和测试后再进行本篇的代码实践。

串口关键参数

波特率:

1、衡量信号传输速率的参数

2、指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。一般调制速率大于波特率,比如曼彻斯特编码)

3、通常电话线的波特率为 14400,28800 和 36600,波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是 GPIB 设备的通信。

数据位:

1、衡量通信中实际数据位的参数

2、当计算机发送一个信息包,实际的数据往往不会是 8 位的,标准的值是 6、7 和 8 位。如何设置取决于你想传送的信息。比如,标准的 ASCII 码是 0~127(7位)。扩展的 ASCII 码是0~255(8位)

3、如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

停止位:

1、用于表示单个包的最后一位,典型的值为 1,1.5 和 2 位

2、由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

奇偶校验位:

1、串口通信中一种简单的检错方式

2、有四种检错方式:偶、奇、高和低,当然没有校验位也是可以的

3、对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

这四个参数非常重要,如通讯两端的设置不一致就可能导致数据接收不到或者接收到是乱码。

安装串口操作库

java提供了原生的串口操作库,但不是特别好用,这里我们选用RXTX。

2.选择适合自己电脑的版本下载,我这里下载的是windows-x64,解压后如图:

3.在install.txt中有安装方法,先将RXTXcomm.jar复制到<JAVA_HOME>\jre\lib\ext,再将两个dll文件复制到<JAVA_HOME>\jre\bin目录中,注意下这里的JAVA_HOME是jdk的根目录,不要搞错了。

码上测试

        利用上一篇中我们在系统中增加了两个虚拟串口,本次测试中我们用测试工具连接COM1,用JAVA程序连接COM2,这两个串口能相互通讯就算实验成功。

1.新建一个简单的maven工程添加测试类,代码和解释如下:

2.新建接收线程,将测试工具发送到串口的的数据打印出来,

3.新建发送线程,定时给串口发送数据,测试工具将会显示这些数据,

OK,代码准备完了,开始测试,注意串口参数要与代码中设置的一致,

先打开测试工具连接COM1,勾选定时后发送,

运行测试代码,在测试工具中看见了测试代码发送的数据,测试代码中也正确显示了测试工具发送的数据。

至此,代码连接串口测试通讯已经完成,后面我会更新一些通讯协议解析和自定义协议方面的内容,有需要的同学可以继续关注。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容