Порты - статьи


     tiktok reseller panel, for. |     

Настройка порта


Получив доступ к порту, необходимо его настроить — задать скорость обмена, формат данных, параметры четности и т. д. Основные параметры последовательного порта задают структуры DCB и COMMTIMEOUTS. Структура DCB содержит основные параметры порта и, кроме этого, довольно много специфических полей.

typedef struct _DCB {


DWORD DCBlength; // sizeof(DCB)


DWORD BaudRate; // current baud rate


DWORD fBinary:1; // binary mode, no EOF check


DWORD fParity:1; // enable parity checking


DWORD fOutxCtsFlow:1; // CTS output flow control


DWORD fOutxDsrFlow:1; // DSR output flow control


DWORD fDtrControl:2; // DTR flow control type


DWORD fDsrSensitivity:1; // DSR sensitivity


DWORD fTXContinueOnXoff:1; // XOFF continues Tx


DWORD fOutX:1; // XON/XOFF out flow control


DWORD fInX:1; // XON/XOFF in flow control


DWORD fErrorChar:1; // enable error replacement


DWORD fNull:1; // enable null stripping


DWORD fRtsControl:2; // RTS flow control


DWORD fAbortOnError:1; // abort reads/writes on error


DWORD fDummy2:17; // reserved


WORD wReserved; // not currently used


WORD XonLim; // transmit XON threshold


WORD XoffLim; // transmit XOFF threshold


BYTE ByteSize; // number of bits/byte, 4-8


BYTE Parity; // 0-4=no,odd,even,mark,space


BYTE StopBits; // 0,1,2 = 1, 1.5, 2


char XonChar; // Tx and Rx XON character


char XoffChar; // Tx and Rx XOFF character


char ErrorChar; // error replacement character


char EofChar; // end of input character


char EvtChar; // received event character


WORD wReserved1; // reserved; do not use


} DCB;

Мы рассмотрим назначение только некоторых основных полей этой структуры, используемых для нашего случая ввода-вывода, так как многие поля можно заполнить значениями “по умолчанию”, пользуясь функцией GetCommState:

BOOL GetCommState(
HANDLE hFile,
LPDCB lpDCB
);

Таким образом, нет необходимости вникать во все тонкости структуры. После этого некоторые поля DCB все же придется заполнить вручную, а именно:

BaudRate — скорость передачи данных. Возможно указание следующих констант: CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400, CBR_4800, CBR_9600, CBR_14400, CBR_19200, CBR_38400, CBR_56000, CBR_57600, CBR_115200, CBR_128000, CBR_256000.Можно просто указать соответствующее число, например 9600, но предпочтительнее все-таки пользоваться символическими константами.



Содержание  Назад  Вперед