3,245
社区成员
发帖
与我相关
我的任务
分享
m_hComDev = CreateFileA( szPort,
GENERIC_READ | GENERIC_WRITE,
0, NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
NULL );
if( m_hComDev == INVALID_HANDLE_VALUE)
{
OP_TRACE("[uart_open] uart_open failed! INVALID_HANDLE_VALUE, err:%d", GetLastError());
return( FALSE );
}
m_dcb.DCBlength = sizeof( DCB );
GetCommState( m_hComDev, &m_dcb );
m_dcb.BaudRate = this->com_baud_rate;
m_dcb.fBinary = TRUE;
m_dcb.fParity = FALSE;
m_dcb.fOutxCtsFlow = (com_flow_mode==CHFLOW_HARDWARE) ? TRUE:FALSE;
m_dcb.fOutxDsrFlow = FALSE;
m_dcb.fDtrControl = DTR_CONTROL_DISABLE;
m_dcb.fDsrSensitivity = FALSE;
m_dcb.fOutX = FALSE;
m_dcb.fInX = FALSE;
m_dcb.fNull = FALSE;
m_dcb.fRtsControl = (com_flow_mode==CHFLOW_HARDWARE) ? RTS_CONTROL_ENABLE:RTS_CONTROL_DISABLE;
m_dcb.ByteSize = 8;
m_dcb.Parity = NOPARITY;
m_dcb.StopBits = ONESTOPBIT;
if(com_flow_mode==CHFLOW_XONXOFF)
{
m_dcb.fInX =TRUE;
m_dcb.fOutX =TRUE;
m_dcb.XonChar =0x11;
m_dcb.XoffChar=0x13;
}
else
{
m_dcb.fOutX = FALSE;
m_dcb.fInX = FALSE;
}
PurgeComm(m_hComDev, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT);
//下面是写数据
//...to write something
//关闭
CloseHandle(m_hComDev);