Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Установить флаг DTR и RTS в активное состояние для определённого COM-порта

Delphi , Файловая система , Порты

Установить флаг DTR и RTS в активное состояние для определённого COM-порта

Автор: Slava V

После открытия com-порта через CreateFile() необходимо с помощью GetCommState() и SetCommState() установить параметры порта (в частности убрать автоуправление RTS и DTR). Затем для установки соответствующих сигналов используется функция EscapeCommFunction().


Procedure ControlRTS;
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
  If Not 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.

Установка флага DTR и RTS в активное состояние для определенного COM-порта через функции CreateFile, GetCommState, SetCommState и EscapeCommFunction.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Порты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 02:08:40/0.0026068687438965/0