NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

禁止终止符的问题

已解决!
转到解答
我通过VISA配置串口来接收数据,发现一个奇怪的现象:在收得的数据中一旦出现oxD,紧挨着就出现oxA。但是oxD是有用数据,oxA是多余出来的。我将终止符禁止掉之后仍然出现同样的问题。下面是几组接收到的数据,aa  55是帧头,0是帧尾,一个完整的帧数据有16个字节,通过倒数第二个字节的校验和可以判断出多余的数据为oxA,不知道是什么原因?
aa  55  31   f  13  13  57  aa   d     a  13   71  52  13  13  70   0                 (有用数据0xD后多余出oxA)
aa  55  31   f  13  13  92  e5  13  13  71  52  13  13  ec     0  
aa  55  31   f  13  13  92  e5  13  13  2c  32  10  13  84     0
aa  55  31   f  13  13  90  c5  10  13  e4   d      a   d     a   13  ef   0            (有用数据0xD后多余出oxA)
aa  55  31   f  13  13  2d  e3  13  13  71  4e  13  13  81    0  
aa  55  31   f  13  13  90  c5  10  13  71  4e  13  13  c3     0
0 项奖励
1 条消息(共 4 条)
4,767 次查看

 

你有没有设置VISA配置串口里的termination char,其默认值是0xA,按你的需要应设置为0xD

 

 Serial port config.JPG

 

0 项奖励
2 条消息(共 4 条)
4,758 次查看

我的本意是想要禁止掉终止符,但是不管对终止符进行使能还是禁止操作,其默认值0xA都会出现在有用数据中,非常奇怪!0xD是我的设备发出来的数据,是有用的,其后紧跟着就出现了0xA。如果按照您的说法,把终止符改为0xD的话,那么接收到的数据应该会出现如下变化的:

aa  55  31   f  13  13  57  aa   d     d  13   71  52  13  13  70   0                 (有用数据0xD后多余出0xD
aa  55  31   f  13  13  92  e5  13  13  71  52  13  13  ec     0  
aa  55  31   f  13  13  92  e5  13  13  2c  32  10  13  84     0
aa  55  31   f  13  13  90  c5  10  13  e4   d    
d    d    d   13  ef   0            (有用数据0xD后多余出0xD
aa  55  31   f  13  13  2d  e3  13  13  71  4e  13  13  81    0  

aa  55  31   f  13  13  90  c5  10  13  71  4e  13  13  c3     0 

还是会出现多余的数据。 您说是这样吗?

0 项奖励
3 条消息(共 4 条)
4,741 次查看
解答
已被主题作者 beyondcz 接受

设置结束符与否不过表明本次读取结束的位置。

 

你的数据中出现所谓的问题,应该是通讯协议自己规定的,对于二进制(字节)方式数据传送,在传送特殊字节时,比如回车或者换行,协议中可能做特殊规定,不一定是通讯本身的问题。

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
0 项奖励
4 条消息(共 4 条)
4,737 次查看