首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

代码1和代码2的区别在哪?小弟我在串口的上使用,代码1无bug,代码2有bug

2012-07-27 
代码1和代码2的区别在哪?我在串口的上使用,代码1无bug,代码2有bug代码一:DWORD dwCommMask0if (!GetComm

代码1和代码2的区别在哪?我在串口的上使用,代码1无bug,代码2有bug
代码一:
  DWORD dwCommMask=0;
if (!GetCommMask(m_hComHandle, &dwMask) || dwMask != DEFAULT_COM_MASK){ 
SetCommMask(m_hComHandle, DEFAULT_COM_MASK); 
continue; 

if (dwMask & EV_ERR){ // Error is detected on the downstream port 
ClearCommError(m_hComHandle, &dwErrors, NULL);
}
if (dwMask & EV_BREAK){ // Break is detected on the downstream port 
ClearCommBreak(m_hComHandle);
}
// 侦测到有数据,读取并处理之 
if (dwMask & EV_RXCHAR){
do{ 
dwRead=m_pSerialPort->ReadData((LPVOID)szData, RESP_DATA_BUF_LEN);
if(dwRead){ 
HandleRxData(szData, dwRead); 


while(dwRead == RESP_DATA_BUF_LEN);
}
代码二:
ClearCommError(m_hComHandle, &dwErrors, &(m_pSerialPort->ComStats));
if(m_pSerialPort->ComStats.cbInQue){
dwRead = m_pSerialPort->ReadData((LPVOID)szData, m_pSerialPort->ComStats.cbInQue);
if(dwRead){
HandleRxData(szData, dwRead);
}
}

[解决办法]
这是声音和视频的消息读取?
[解决办法]
m_pSerialPort->ComStats.cbInQue

应该是这个有问题吧,对ComStats结构体看下
[解决办法]
ReadData并不是每次能全部取出数据,你得判断每次接收的数据长度

热点排行