首页 > 其他 > 详细

关于程序中以时间判断接收数据结束时,接收数据长度设置为1时,出现接收不全的问题解释。

时间:2019-05-08 10:06:51      阅读:155      评论:0      收藏:0      [点我收藏+]

首先明确:接收长度不能设置为1

程序代码如下:

if(Paral_RX_Count >= 10 )
{

      //@@@@2@@@@
  if(Paral_RX_NumByte >= 1)
  {

    //@@@@3@@@@
    WriteUart1CyBuf(Paral_RX_NumByte,ParalRcvBuf);
    Paral_RX_Count = 0;
    Paral_RX_NumByte = 0;
  }
}

当Paral_RX_NumByte >=1时,解释如下:

  没有接收数据时,Paral_RX_Count会大于10,走到@@@@2@@@@时,正好收到1个数据,这时程序就会进入@@@@3@@@@,违背程序本意。

当Paral_RX_NumByte >= 2时,就不会出现上面的情况,解释如下:

  没有接收数据时,Paral_RX_Count会大于10,走到@@@@2@@@@时,正好收到1个数据,但是Paral_RX_NumByte >= 2,不会进入@@@@3@@@@,再有数据来到时,已经将Paral_RX_Count设置为0,所以不会出现上面的情况。

因此,程序不能处理一次发送一个字节的情况。

关于程序中以时间判断接收数据结束时,接收数据长度设置为1时,出现接收不全的问题解释。

原文:https://www.cnblogs.com/zzq888/p/10830049.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!