急!!!先写串口再读串口,为什么总是先读到我向串口写的数据,才读到真正的响应

happymarmot 2001-11-19 10:52:44
这是否是PC串口本身的设置,如果是,是否可以通过程序修改?!?!

Thanks thans thans!
...全文
280 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolunix 2001-11-21
  • 打赏
  • 举报
回复
这样说来不是每次接受数据是都要滤掉回波数据一次?
linjiework 2001-11-21
  • 打赏
  • 举报
回复
我编写对串口操作的程序时没有遇见“回波”呀!
什么情况下会出现?
hecCIBN 2001-11-21
  • 打赏
  • 举报
回复


对头,coolunix,计算机每发送出一个数据包,就会有一个“回波”产生。
所以每次接受数据是都要滤掉“回波”数据一次。

TigerHu 2001-11-20
  • 打赏
  • 举报
回复
有没有可能是另一通信设备先回传接收到的数据然后再发送本身的数据!
hecCIBN 2001-11-20
  • 打赏
  • 举报
回复


突然想起来了,我曾经遇到过这个问题。
这是个“回波”的现象,不是缓冲区的问题!
发送缓冲区和接收缓冲区的数据是不会串到一块的。
解决办法是首先滤掉“回波”数据,即你所发送的数据。
再接收下面的数据,就是你所要的数据了。

coolunix 2001-11-20
  • 打赏
  • 举报
回复
同意,是你的缓冲区问题!
hecCIBN 2001-11-20
  • 打赏
  • 举报
回复
检查接线吧
TigerHu 2001-11-20
  • 打赏
  • 举报
回复
连线有无错误?
zzh 2001-11-20
  • 打赏
  • 举报
回复
你的缓冲区没有设置好,一般情况下,串口有一个发送缓冲区和一个接收缓冲区,你在每一次读取后都要调用清除串口关状态的函数。这样就可以实现了。
hecCIBN 2001-11-20
  • 打赏
  • 举报
回复


楼上的说的有道理。

由于能收到应答数据包,说明数据的发、收是正常的,肯定与串口的设置和缓冲区等没有关系。

下面的数据采集器(PC的另一端的通信设备)是多个(以总线方式?),计算机对它们进行挨个问,同一个数据包会经过所有的数据采集器,当经过最后一个后,这个数据包还会再一次发回给计算机,所以计算机还会收到自己发送出去的那个数据包,等采集器应答的数据包就跟在这个数据包后面了。就形成了“回波”现象。

所以,happymarmot,解决问题的方法就是把那个“回波”的数据包滤掉就行了,其它照常。





16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧