问题:API串口通信,能够发送数据但读取不到数据。求解?
描述:

api串口通信

bool CMySerialPort::Write(CString strParam)
{
if(!m_bIsOpen)
{
Open();
}
bool bResult = false;
DWORD dWordWriten = 0;
if(!this->m_bIsOpen)
{
bResult = this->Open();
if(!bResult)
{
return bResult;
}
}
// 清空缓冲区
bResult = this->PurgeComm_My();
if(!bResult)
{
return bResult;
}
bResult = ::WriteFile(m_hCom, strParam, strParam.GetLength(), &dWordWriten, NULL);
if(!bResult)
{
this->m_strError = "写出失败";
AfxMessageBox(m_strError);
return bResult;
}
if(dWordWriten != strParam.GetLength())
{
this->m_strError = "写入的数据长度与要求写入的长度不一致";
AfxMessageBox(m_strError);
bResult = false;
return bResult;
}
return bResult;
}
// 读串口
bool CMySerialPort::Read(char *pChr)
{
bool bResult = false;
DWORD dWordError = 0;
DWORD dWordRead = 0;
COMSTAT comStat;
if(!this->m_bIsOpen)
{
bResult = this->Open();
if(!bResult)
{
return bResult;
}
}
memset(m_chrArrRead , 0, sizeof(m_chrArrRead));
//清除错误
bResult = ::ClearCommError(m_hCom, &dWordError, &comStat);
if(!bResult)
{
m_strError = "清除串口错误失败";
AfxMessageBox(m_strError);
return bResult;
}
bResult = ::ReadFile(m_hCom, m_chrArrRead, comStat.cbInQue, &dWordRead, NULL);
if(!bResult)
{
m_strError = "串口读取数据失败";
AfxMessageBox(m_strError);
return bResult;
}
if(comStat.cbInQue != dWordRead)
{
m_strError = "串口读取的数据与串口中预读的数据长度不一致";
AfxMessageBox(m_strError);
bResult = false;
return bResult;
}
strcpy(pChr, m_chrArrRead);
return bResult;
}

上一篇邮件服务器测试
下一篇github相关问题
明星图片
相关文章
《API串口通信,能够发送数据但读取不到数据。求解?》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)