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

ReadFile,C++串口通信接收十六进制的数据,(大于127的部分)间歇性正确。求分析

2013-01-23 
ReadFile,C++串口通讯接收十六进制的数据,(大于127的部分)间歇性正确。求分析接收函数如下;DWORD CComm::Re

ReadFile,C++串口通讯接收十六进制的数据,(大于127的部分)间歇性正确。求分析
接收函数如下;
DWORD CComm::ReadData(LPVOID lpBuf, DWORD dwToRead)  
{   
 TRACE("RRRRRRRRRRRR 00\n");   
 if( !m_bOpened || m_hComm == NULL ) return 0;  
 DWORD dwRead;  
 if (ReadFile(m_hComm, lpBuf, dwToRead, &dwRead, &m_osReader) ) return TRUE;   
 if (GetLastError() != ERROR_IO_PENDING)  return 0;  
 
 if (WaitForSingleObject(m_osReader.hEvent, INFINITE) != WAIT_OBJECT_0 )   
  return 0;  
 
 if (!GetOverlappedResult(m_hComm, &m_osReader, &dwRead, FALSE) )  
  return 0;  
 TRACE("RRRRRRRRRRRR 11\n");    
 return dwRead;  
}
调用方式为:BYTE lpRead[10];
memset(lpRead,0,sizeof(BYTE)*10);
readLength = pDlg->m_myComm.ReadData(lpRead,sizeof(lpRead)-1);
然后,接收下位机以16进制的方式发送,数据127以下的都行,大于了127的就不行。别人的程序都能正确接收,我的就不行,
而且还时好时坏,的。本来莫名奇妙能接收127的数据了,结果重起系统继续运行,又不能接收大于127的了。
求解答。
c++ 通讯 byte
[解决办法]
是不是串口的参数设置有问题?

热点排行