主题:求解 串口ReadFile函数阻塞问题
[code=c]
TimeOuts.ReadIntervalTimeout=100;
TimeOuts.ReadTotalTimeoutMultiplier=0;
TimeOuts.ReadTotalTimeoutConstant=0;
SetCommTimeouts(m_hComm,&TimeOuts);
PurgeComm(m_hComm,PURGE_RXCLEAR);
char str[100];
memset(str,'\0',100);
DWORD wCount = 100; //读取的字节数]
DWORD retCount =0;
bool ret = ReadFile(m_hComm,str,wCount,&retCount,NULL);
if(!ret)
{
AfxMessageBox("读取数据失败");
}
if(retCount>0)
{
AfxMessageBox("读取数据成功");
data_analyse(str,retCount);
CloseHandle(m_hComm);
}
[/code]
以上为部分代码,(win32工程修改了打印函数)
当该代码在win32工程中运行时,正常接收数据,加载到MFC工程中,就会在ReadFile函数处阻塞,
当TimeOuts.ReadIntervalTimeout=100;
TimeOuts.ReadTotalTimeoutMultiplier=100;
TimeOuts.ReadTotalTimeoutConstant=100;均设为100时,可以通过ReadFile,但是ReadFile读不到数据。
请高手帮助。
TimeOuts.ReadIntervalTimeout=100;
TimeOuts.ReadTotalTimeoutMultiplier=0;
TimeOuts.ReadTotalTimeoutConstant=0;
SetCommTimeouts(m_hComm,&TimeOuts);
PurgeComm(m_hComm,PURGE_RXCLEAR);
char str[100];
memset(str,'\0',100);
DWORD wCount = 100; //读取的字节数]
DWORD retCount =0;
bool ret = ReadFile(m_hComm,str,wCount,&retCount,NULL);
if(!ret)
{
AfxMessageBox("读取数据失败");
}
if(retCount>0)
{
AfxMessageBox("读取数据成功");
data_analyse(str,retCount);
CloseHandle(m_hComm);
}
[/code]
以上为部分代码,(win32工程修改了打印函数)
当该代码在win32工程中运行时,正常接收数据,加载到MFC工程中,就会在ReadFile函数处阻塞,
当TimeOuts.ReadIntervalTimeout=100;
TimeOuts.ReadTotalTimeoutMultiplier=100;
TimeOuts.ReadTotalTimeoutConstant=100;均设为100时,可以通过ReadFile,但是ReadFile读不到数据。
请高手帮助。