基本环境: 编程环境:VS2008 多字节编码 串口环境:手机AT命令 进行手机与pc通信 串口类是网上 下载的一个 CSerialPort类, 很多有关串口编程都有其源代码 相关代码: //清除接受缓冲区 void ClearInputBuffer() { if(IsOpen()) ::PurgeComm(m_hComm, PURGE_RXABORT | PURGE_RXCLEAR ); } //清除发送缓冲区 void ClearOutputBuffer() { if(IsOpen()) ::PurgeComm(m_hComm, PURGE_TXABORT | PURGE_TXCLEAR ); } void CSerialPort::SetTimeouts(COMMTIMEOUTS& timeouts) { ASSERT(IsOpen()); if (!SetCommTimeouts(m_hComm, &timeouts)) { TRACE(_T("Failed in call to SetCommTimeouts/n")); AfxThrowSerialException(); } } void CSerialPort::GetTimeouts(COMMTIMEOUTS& timeouts) { ASSERT(IsOpen()); if (!GetCommTimeouts(m_hComm, &timeouts)) { TRACE(_T("Failed in call to GetCommTimeouts/n")); AfxThrowSerialException(); } } void CSerialPort::GetState(DCB& dcb) { ASSERT(IsOpen()); if (!GetCommState(m_hComm, &dcb)) { DWORD dwErr = GetLastError(); TRACE(_T("Failed in call to GetCommState/n")); AfxThrowSerialException(); } } void CSerialPort::SetState(DCB& dcb) { ASSERT(IsOpen()); if (!SetCommState(m_hComm, &dcb)) { DWORD dwErr = GetLastError(); TRACE(_T("Failed in call to SetCommState/n")); AfxThrowSerialException(); } }