为什么串口发送出的数据与原始数据不一致

2019-07-17 11:04发布

本帖最后由 zhihuizhou 于 2011-11-18 10:45 编辑

mscomSerialWrite2.rar (18.21 KB, 下载次数: 88)

串口发送数据错误.jpg

如题,串口发出的数据为FFAE 4040 EA41 D8FF ,接收到的数据为FFAE 4040 EA41 3F
百思不得其解,特向各位大师求教.
指令发给我自已做的一块板,格式自已定义的.
现在我的问题是发FFAE 4040 EA41 D8FF ,在本机上用串口调试助手接收时发现实际发的是FFAE 4040 EA41 3F.也就是说最后的二个字节D8FF变成了3F
(如果您对如果本机虚拟两个串口一个发一个收不清楚的话我可以告诉您,我用串口监视也确认了是发出的数据不对)
所以与仪器指令无关.

测试了一下,数据如下
发出:4164 8163 4341 03接收:41 64 81 63 43 41 03
发出:A143 B245 6AAA BBCC 接收:A1 43 B2 45 6A AA BB 00
发出:AAAA AAAA AAAA AAAA AAAA AAAA 接收:AA AA AA AA AA AA AA AA AA AA AA AA
发出:A1A1 A1A1 A1A1 A1A1 A1A1 接收:A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
发出:FFAE 4040 EA41 D8FF接收:FF AE 40 40 EA 41 3F
发出:FFAE 4040 EA41 D8FF AA23 AB33 A233 AAAA A404 ABCD A2CD A22D B22C 接收:FF AE 40 40 EA 41 3F 3F 3F 3F AA AA 3F AB CD A2 CD 3F 3F
发出:FFAE 40A2 CCDD EEFA接收:FF AE 40 A2 CC DD EE 00

从上面可以看出,全是数字没错.
常是出现字母+数字时会变成3F
还有二个字母时会变成0

why?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
zhangguangrong
1楼-- · 2019-07-17 13:21
用labview自带的串口程序发送一次你的数据,再用串口调试助手接收,看看会不会出错,一般都是你软件上的错误
zhihuizhou
2楼-- · 2019-07-17 18:35
看起来好像是奇偶校验出错了,你程序中是先设置了参数再打开串口的,你试一下第二个属性节点最上面用OPEN的,最后一个属性再设置参数看有没有效果。
jiuri1989
3楼-- · 2019-07-17 20:06
zhihuizhou 发表于 2011-11-4 14:19
看起来好像是奇偶校验出错了,你程序中是先设置了参数再打开串口的,你试一下第二个属性节点最上面用OPEN的 ...

按照您所说有先设参数再打开串口,即最上面是open,结果是跳出错误提示如下
Error -2146820283 occurred at Property Node

This error code is undefined. No one has provided a description for this code, or you might have wired a number that is not an error code to the error code input.

下面是continue,stop,和why not found三个按钮.按continue后,接收到的数据依然错误,即
发出:FFAE 4040 EA41 D8FF接收:FF AE 40 40 EA 41 3F

如果按照以前的,先设参数再开串口就没有错误框弹出,虽然接收到的数据不对.
事实上,网上流行的一个经典mscomm通信范例程序,我试了试发送,也是有同样的问题.
咖小啡
4楼-- · 2019-07-18 01:11
 精彩回答 2  元偷偷看……
jiuri1989
5楼-- · 2019-07-18 02:57
I工程师告诉我要转化成byte array数组干,图示是偶的解决方案.用起来没问题
我的

vv.jpg
kuloqiu
6楼-- · 2019-07-18 06:31
好@@@@

一周热门 更多>