windows 通过COM端口进行C++通信

rjee0c15  于 2022-12-24  发布在  Windows
关注(0)|答案(2)|浏览(285)

一个人如何用c++通过com端口与设备通信?有没有处理这个问题的windows库?
先谢了。
编辑:我用的是Windows。

fhity93d

fhity93d1#

您可以使用CreateFile()ReadFile()等通用文件I/O API调用来完成此操作。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
}
mnowg1ta

mnowg1ta2#

如果你用谷歌搜索的话,网上有很多示例代码。这里有一个例子:http://web.archive.org/web/20220426073821/http://members.ee.net/brey/Serial.pdf

相关问题