您的位置:首页 > 编程语言

一段串口的api初始化代码

2009-04-14 09:00 323 查看
]//*******************************************************************
BOOL OPort::Initialize( )
{
CSLock temp( &lock );
if( hPort == NULL )
{
hPort = CreateFile( name,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,   // security
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if( hPort == INVALID_HANDLE_VALUE )
{
TRACE_MSG
return FALSE;
}
reInitialize = TRUE;
}

if( reInitialize == FALSE )
return TRUE;

DCB dcb;
if( !GetCommState( hPort, &dcb ) )
{
TRACE_MSG
return FALSE;
}
dcb.BaudRate = baud;
dcb.fBinary = TRUE;
dcb.fParity = (parity==NOPARITY ? FALSE : TRUE);
dcb.fNull = FALSE;
dcb.ByteSize = (UCHAR)dataBits;
dcb.Parity = (UCHAR)parity;
dcb.fOutxCtsFlow = (flow==HARDWARE ? TRUE : FALSE);
dcb.fRtsControl = (flow==HARDWARE ? RTS_CONTROL_HANDSHAKE : RTS_CONTROL_DISABLE);

if( !SetCommState( hPort, &dcb ) )
{
TRACE_MSG
return FALSE;
}

reInitialize = FALSE;
return TRUE;
}


原来做工程都是用异步方式做的,需要考虑超时的问题,今天看了下一个modbus的代码,里面用的是同步方式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: