向串口发送数据,并获得返回值 分类: java 20100630 18:01 4244人阅读 评论(9) 收藏

实现要求:用java代码通过串口向电路板发送指令“aa00dd0000000055”,获得返回值“AA00DD03000055”【此处注意,没有FF】,经串口调试工具测试,硬件是好的。

证明如下:

此工具为串口调试工具,用VB编写的

java实现其功能代码如下: 

这段破代码搞了我很长时间,一直没有成功获取返回值,差点要了我的命。但是现在我的命保住了。呵呵。终于获得了正确的返回值。返回结果为:b=-86  b=0  b=-35 b=3  b=0  b=0  b=85  b=85。

为了测试这段数字的十六进制形式是否跟上面的串口调试工具得到的结果一样,将这段数字转化为十六进制,代码如下:

结果为:

-86的十六进制:ffffffaa
0的十六进制:0
-35的十六进制:ffffffdd
3的十六进制:3
85的十六进制:55

为了得到只有2位的表示形式,自己判断一下就行了,这里就不介绍了。

PS:

1:以前的程序错在没有写监听事件。

2:以前的程序在获得返回值后将serialPort端口关闭了【这个其实我想不通为什么不能关闭,我觉得应该关闭】

3:获得portId是不能使用简写,即portId = CommPortIdentifier.getPortIdentifier("COM3");这个是让人比较来火的,居然不能写成简写形式,NND,真晕!

 再PS一下:我还是喜欢我的代码,原因2个字“精简”!看网上的东西废话太多,让人郁闷。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/configman/p/4657619.html