Desktop / Документ Microsoft Office Word
.docxprocedure TForm1.OpenComm(ComPort: PChar);
var
DCB: TDCB;
CTT: TCommTimeouts;
begin
hPort:= CreateFile(ComPort, GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL {or
FILE_FLAG_OVERLAPPED}, 0);
if hPort = INVALID_HANDLE_VALUE then
begin
ShowMessage('Ошибка открытия COM-порта');
CloseHandle(hPort);
Halt;
end;
{настройка параметров}
GetCommState(hPort, DCB);
with DCB do
begin
Parity:= NOPARITY;
BaudRate:= CBR_115200;
ByteSize:= 8;
StopBits:= ONESTOPBIT;
end;
SetCommState(hPort, DCB);
{настройка таймаутов}
GetCommTimeouts(hPort, CTT);
with CTT do
begin
ReadIntervalTimeout:= 50;
ReadTotalTimeoutMultiplier:= 0;
ReadTotalTimeoutConstant:= 0;
WriteTotalTimeoutMultiplier:= 10;
WriteTotalTimeoutConstant:= 10;
end;
SetCommTimeouts(hPort, CTT);
{установка маски прерываний}
GetCommMask(hPort, Mask);
Mask:= Mask or EV_RXCHAR;
SetCommMask(hPort, Mask);
end;