用SDK开发串口通讯,在写串口后(发送读命令),为什么要做延时操作才能接受到回送数据?
WriteFile(m_hComm,SendString,length,&length,&m_osWrite);
Sleep(130);
ReadFile();
请问这个和什么有关系?等待
WriteFile(m_hComm,SendString,length,&length,&m_osWrite);
Sleep(130);
ReadFile();
请问这个和什么有关系?等待
时要时间的
不sleep,ReadFile()会出错
------
本人估计
WriteFile(m_hComm,SendString,length,&length,&m_osWrite);
Sleep(130);
ReadFile();
请问这个和什么有关系?等待=========
1:要看你设置的缓冲区的大小,建议尽量设置大点2:建议发送数据一帧完毕后,在接收数据前,最好把串口中的数据清除掉。3:看看你的操作系统是什么,如果是win98.可以不需要SLEEP。如果是2K/XP,最好SLEEP一下,这个问题我在写程序中也遇到过,请教老一辈的程序员,解释为2k/xp下发送数据有时会产生丢包(丢数据)的问题,具体无法得知,我曾写过一个程序向单板上EEPROM中写数据,发现在整个数据包中有1-2包会丢失,且基本上集中在后面。从另一个方面来说,发的越快,越容易丢数据。经过测试在98下没有这个问题。关于sleep的时间,经过我在115200bps下测试,sleep(5)就可以了,不用太长是可以保证收到数据了。不过丢失还是存在的,按照不同的需求要不通的要求,比如100万数据包只允许1-2包的丢失。