Работа с коммуникационными портами (COM и LPT) в программах для Win32

Функция SetCommState


Заполнив DCB можно приступать к собственно конфигурированию порта. Это делается с помощью функции SetCommState:

   BOOL SetCommState(

      HANDLE hFile,

      LPDCB  lpDCB

   );

Эта функция имеет точно такие же параметры, как GetCommState. Различается только направление передачи информации. GetCommState считывает информацию из внутренних управляющих структур и регистров порта, а SetCommState наоборот заносит ее. Следует быть осторожным при вызове функции SetCommState, поскольку она изменит параметры даже в том случае, если очереди приема/передачи не пусты, что может вызвать искажение потока передаваемых или принимаемых данных.

Еще одна тонкость этой функции заключается в том, что она завершится с ошибкой, если поля XonChar и XoffChar в DCB содержат одинаковые значения.

Как всегда, в случае успешного завершения возвращается отличное от нуля значение, а в случае ошибки - нуль.



Содержание раздела