C ++ Связь через COM-порт - PullRequest
       1

C ++ Связь через COM-порт

2 голосов
/ 12 августа 2011

Как можно общаться с устройством через COM-порт с C ++? Есть библиотека Windows, которая обрабатывает это?

Заранее спасибо.

EDIT: я использую Windows.

Ответы [ 2 ]

6 голосов
/ 12 августа 2011

Для этого можно использовать общие вызовы 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
}
1 голос
/ 12 августа 2011

Много примеров кода в Интернете, если вы Google.Вот один пример: http://members.ee.net/brey/Serial.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...