簡體   English   中英

C++ 通過 COM 端口通信

[英]C++ Communication via COM Port

如何通過帶有 C++ 的 COM 端口與設備通信? 是否有處理此問題的 windows 庫?

提前致謝。

編輯:我使用 Windows。

您可以使用通用文件 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
}

如果你谷歌的話,web 上有很多示例代碼。 這是一個例子: http://members.ee.net/brey/Serial.pdf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM