用Windows API 编写串口,向串口写数据的时候出现问题了,请高手帮忙!
(2007-09-26 11:46:08) 陈锦明(93058274)
谁能告诉我这样写串口输出数据有什么问题?
DWORD CUartDlg::WriteComm(char *buf, DWORD dwLength)
{
BOOL fState=FALSE;
DWORD length=0;
COMSTAT ComStat;
DWORD dwErrorFlags;
//ClearCommError是用来清除Comm中的错误,从而可以在下面的代码中通过GetLastError抓取错误
ClearCommError(m_hCom,&dwErrorFlags,&ComStat);
fState=WriteFile(m_hCom,buf,dwLength,&length,&m_osWrite);
if(!fState)
{
if(GetLastError()==ERROR_IO_PENDING)
{
// SetEvent(m_osWrite.hEvent);
while(!GetOverlappedResult(m_hCom,&m_osWrite,&length,TRUE))// 等待
{
if(GetLastError()==ERROR_IO_INCOMPLETE)
continue;
}
}
else
length=0;
}
return length;
}
我已经能成功接收到ARM机串口发来是数据,可是,不能通过这个函数忘ARM机写数据