Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
После открытия com-порта через CreateFile() необходимо с помощью GetCommState() и SetCommState() установить параметры порта (в частности убрать автоуправление RTS и DTR). Затем для установки соответствующих сигналов используется функция EscapeCommFunction().
ProcedureControlRTS; Var
S: String
; lDCB: TDCB; fHandle: THandle; Begin
S:='COM1'; // open port fHandle:=CreateFile( Pchar(S), GENERIC_READ Or
GENERIC_WRITE, 0, Nil
, OPEN_EXISTING, 0, 0); If
fHandle=INVALID_HANDLE_VALUE Then
Begin
// can't open.... Exit; End
;
// read settings IfNot
GetCommState( fHandle, lDCB) Then
Begin
// can't read Exit; End
;
// Fill dcb lDCB.BaudRate:=CBR_2400; lDCB.ByteSize:=8; lDCB.Parity:=NOPARITY; lDCB.StopBits:=ONESTOPBIT; // !!! we will manage RTS ourself !!! ldcb.Flags:=(ldcb.Flags And$FFFFC0FF) Or
$00000100;
// set comm state SetCommState( fHandle, ldcb); // Here we can manage // Reset RTS EscapeCommFunction( fHandle, CLRRTS); // Set RTS EscapeCommFunction( fHandle, SETRTS); // Close port CloseHandle(fHandle); fHandle:=0; End;
P.S. Надо заметить, что все выходы com-порта являются инверсными. А это значит, что активным сосотоянием порта является 0, а неактивным 1.