又来了,问题,问题!
说再多话还不如让大家看代码
SetCommMask (handle, EV_TXEMPTY);
if(handle!=NULL)
WriteFile(handle,cByte,8, &dwWriteCount, 0);
WaitCommEvent( handle, &dwCommStatus, NULL );
if ((dwCommStatus & EV_TXEMPTY) == EV_TXEMPTY)//
{
ReadFile(handle,cGetByte, 24, &dwReadCount, NULL);
str.Format(_T("%02x %02x %02x %02x %02x %02x %02x %02x") , cGetByte[0] , cGetByte[1] ,
cGetByte[2] , cGetByte[3] , cGetByte[4] , cGetByte[5] , cGetByte[6] , cGetByte[7]);
MessageBox(NULL,"请按下手指.", "第一次采样", NULL);///////////////_______
}
PurgeComm( handle,PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_RXABORT|PURGE_TXABORT);
SetCommMask (handle, EV_RXCHAR);
WaitCommEvent( handle, &dwCommStatus, NULL );
if ((dwCommStatus & EV_RXCHAR) == EV_RXCHAR)//
{
ReadFile(handle,cGetByte, 8, &dwReadCount, NULL);
str.Format(_T("%02x %02x %02x %02x %02x %02x %02x %02x") , cGetByte[0] , cGetByte[1] ,
cGetByte[2] , cGetByte[3] , cGetByte[4] , cGetByte[5] , cGetByte[6] , cGetByte[7]);
if(str==(CString)("1b 72 73 00 03 84 32 b9"))
{
AfxMessageBox("??????");
}
my2.m_cedit="请抬起手指";
}
///////////////////////////////////////////////////////
好了,上面有两个问题,
一个是,如果不屏蔽这句
MessageBox(NULL,"请按下手指.", "第一次采样", NULL);///////
WaitCommEvent根本就没有监听了,感觉是PurgeComm没作用,设备返回的值根本就没得到,但是如果有例如MessageBox/AfxMessageBox()之类的就会有返回"??????"
第二个是,my2.m_cedit="请抬起手指";后my2.m_cedit没有反应,依旧是开始的字符串,
我这段程序是在dll中线程函数里.请大家一定帮忙.