当前位置: 代码迷 >> C# >> 关于串口通讯接收数据解决思路
  详细解决方案

关于串口通讯接收数据解决思路

热度:91   发布时间:2016-05-05 04:32:27.0
关于串口通讯接收数据
接收的命令总是有几个“3F”穿插在正确的命令之中, 串口的一系列设置都是按照协议规定的,程序也没查出什么问题来,因为其他协议的通讯都没有问题,只有这个协议不行。使用串口调试助手测试,接收的命令都是对的,现在没办法了。 

例子:
     发 送:AA AA AA AA AA AA AA 10 05 00 94 56 
正确接收:02 00 00 00 00 42 41 10 85 00 71 91 
现在接收的错误命令:56 3F 3F 02 00 00 00 00 42 41 3F 3F 10 85 00
 或者
3F 3F 02 00 00 00 00 42 41 3F 3F 10 85 00 71 
总是3F 3F在这里干扰。

------解决思路----------------------
你用我5楼给你的代码测试过了吗
先确定是SerialPort的问题还是你代码写的有问题

我给你的代码里面用到了两种串口类,一个是SerialPort,还有个windows API,总该有一个是好用的吧
------解决思路----------------------
引用:
 又用别的调试软件测试, 只有COMMIX这个软件接收到正常报文,其他的串口调试软件都不行,有的发什么回什么,有的接收也有3F3F 捣乱。


你这个现象和我当时遇到的太像了,不是每条指令都出错,也不是所有调试工具都能正常接收。反正当时我们最后的解决办法就是把serialPort的那两个dts,rts什么的都打开了,然后单片机延迟5毫秒返回数据,就一切正常了。
  相关解决方案