WINCE6.0 串口接收到之前的数据
目前在做433MHZ模块通讯,波特是9600,两台机器都装有433MHZ模块,一台每间隔1s发送一个随机数(A机器),另一台接收(B机器),B停止接收,A还在一直发送,过一会,B重新开始接收,这时候B先接收到的是A之前发送的数据,对于此问题,我之前的解决问题办法,就是在串口发送那边先调用PurgeComm(g_hSerialArray[EXTENDED_SERIAL], PURGE_TXCLEAR | PURGE_RXCLEAR);
但还是不能解决此问题,在此请教大家,先谢谢了。
[解决办法]
B 停止接收这段时间,能否先分析到此时发送的数据是被 A 缓冲了,还是被 B 接收到后缓冲了?
然后才好分析如何解决。
[解决办法]
那为什么不能在停止接收的时候关闭串口呢
[解决办法]
那你是要接收之前的数据呢还是不接收?
不接收的话就简单了,在B机器重新接收数据时,清除接收缓冲区,这样来接收新的数据。
如果要接收之前的数据的话,就要考虑数据是否会溢出接收缓冲区导致数据丢失的问题
[解决办法]
应该是接收模块做了缓存,模块本身也有CPU和内存的,你关闭模块的输出串口和对它做PurgeComm操作,并不能清除缓存数据。