2011-08-12 201 views

回答

6

您可以使用通用文件I/O API调用(例如CreateFile()ReadFile())来完成此操作。其他呼叫如GetCommState()SetCommState()可用于更改串行端口打开后的各种设置。

HANDLE hSerial; 
hSerial = CreateFile(
    "COM1", 
    GENERIC_READ | GENERIC_WRITE, 
    0, 
    0, 
    OPEN_EXISTING, 
    FILE_ATTRIBUTE_NORMAL, 
    0); 
if(hSerial==INVALID_HANDLE_VALUE) 
{ 
    if(GetLastError()==ERROR_FILE_NOT_FOUND) 
    { 
     //serial port does not exist. Inform user. 
    } 
    //some other error occurred. Inform user. 
} 


DCB dcbSerialParams = {0}; 
dcbSerial.DCBlength=sizeof(dcbSerialParams); 
if (!GetCommState(hSerial, &dcbSerialParams)) 
{ 
    //error getting state 
} 
dcbSerialParams.BaudRate=CBR_19200; 
dcbSerialParams.ByteSize=8; 
dcbSerialParams.StopBits=ONESTOPBIT; 
dcbSerialParams.Parity=NOPARITY; 
if(!SetCommState(hSerial, &dcbSerialParams)) 
{ 
    //error setting serial port state 
}