程序的功能是能实现接收到合适的数据后,停止发送数据,若没有接收到合适的数据,一直发送数据。串口发送程序大概这样子:while(theApp.Recv_flag==0)
{
m_series.WritePort((char *)data,data_len);

Sleep(5000);//延迟5S
}在收到串口数据后,将theApp.Recv_flag置为1。我想这样来停止发送。现在遇到的问题有:
(1)由于要发送的data数组比较大,大概有1500个字节。现在发送完一次data后,间隔一会,之后才第二次发送data(这是正常的,因为有Sleep)。但是随着发送的次数越多,就不会出现延迟的情况了。好像Sleep就没有执行似的。怎么回事呢?
 (2)在发送完数据后,如果在延迟的时候接收到了数据,那么就会停止发送。如果在后面不出现延迟的时候接收到数据的话,是不会停止发送的,为什么呢? 被这个问题困扰很久了,不知怎么办了,请教大家,非常感谢!另外,想实现“接收到合适的数据后,停止发送数据,若没有接收到合适的数据,一直发送数据。”的功能的话,还有没有其他好的方法呢?