MFC 串口消息响应函数会多次进入的问题
梦竹 2012-03-01 12:19:27 下载了一个CSerial类,添加了串口接收消息响应函数,结果发现发送一次数据的时候会4次调用消息响应函数
第一次调用的时候收到的数据是正确的
最后得到的结果是发送的最后一个字符
串口接收消息响应函数:
LRESULT CMyCSerialAPPDlg::OnSerialMsg( WPARAM wParam, LPARAM lParam )
{
CSerial::EEvent eEvent = CSerial::EEvent( LOWORD( wParam ) );
if ( eEvent & CSerial::EEventRecv )
{
DWORD dwBytesRead = 0;
char szBuffer[ 11 ];
const int nBufLen = sizeof( szBuffer ) - 1;
CString StrTmp;
CString StrRecieve;
//do
//{
DWORD lLastError = m_Comm.Read( szBuffer, nBufLen, &dwBytesRead );
//m_Comm.Clear();
if ( lLastError != ERROR_SUCCESS )
{
return lLastError;
}
if ( dwBytesRead > 0 )
{
szBuffer[ dwBytesRead ] = '\0';
StrTmp.Format( "%s", szBuffer );
StrRecieve += StrTmp;
}
//} while ( dwBytesRead == nBufLen );
SetDlgItemText( IDC_EDIT_RECIEVE, StrRecieve );
//Sleep(100);
}
return 0;
}
用串口助手发送:1234567890
第一次进入时收到的是:1234567890
最后结果是:0
求助,谢谢