Автоматически переключать линию RTS (Delphi Prism SerialPort)

Я использую SerialPort под Delphi Prism. Я могу отправлять байты в последовательный порт, но не могу получать данные извне, потому что линия SerialPort Request to Send (RTS) всегда находится на высоком или высоком уровне. Итак, какие настройки вы устанавливаете для автоматического переключения линии RTS?

Вот свойства последовательного порта, которые я установил:

SerialPort1 := new System.Io.Ports.SerialPort();
SerialPort1.BaudRate:=19200;
SerialPort1.DataBits:=8;
SerialPort1.DtrEnable:=true;
SerialPort1.Parity:=System.IO.Ports.Parity.Even;
SerialPort1.PortName:='COM1';//'/dev/ttyS0';
SerialPort1.ReadBufferSize:=3000;
SerialPort1.ReadTimeout:=1000;
SerialPort1.ReceivedBytesThreshold:=1;
SerialPort1.RtsEnable:=true;
SerialPort1.StopBits:=System.IO.Ports.StopBits.One;
SerialPort1.WriteTimeout:=1000;
SerialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(@MySerialData);
SerialPort1.Open;

У меня установлен DTR. Строка Request to Send - это то, как вы управляете чтением и записью данных в последовательный порт. RTS высокий, тогда вы можете только писать, а если RTS низкий, вы можете только читать. Мы проверили линию связи на осциллографе, и линия RTS всегда высока, что означает, что наша программа может отправлять только байты, но не может считывать байты или данные извне. Это основная причина, по которой событие DataReceived Event никогда не запускается, потому что оно никогда не видит никаких входящих байтов или данных.

Итак, посмотрев на настройки моего последовательного порта, вы можете сказать мне, что мне не хватает.

1 ответ

Решение

RTS выводится, поэтому он не имеет никакого отношения к приему. Попробуйте включить DTR и / или CTS.

РЕДАКТИРОВАТЬ:

Попробуйте удалить строку с поддержкой RTS и добавить квитирование для RTS/CTS (не уверен, что именно в Delphi). Я знаю, для чего нужны булавки и что они должны делать. У вас есть распиновка, показывающая, как это связано. Я предполагаю, что 2 и 3 пересечены, DTR в DSR в обоих направлениях, RTS в CTS в обоих направлениях.

Другие вопросы по тегам