我在Delphi Prism下使用SerialPort。我能夠將字節發送到串行端口,但由於串行請求發送(RTS)線始終處於高電平或高電平,因此我無法從外部接收數據。那麼,您設置了什麼設置來自動切換RTS線?自動切換RTS線(Delphi Prism SerialPort)
這裏有一個串口的屬性我設置:
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集。請求發送線是您如何控制何時讀取和寫入數據到串行。 RTS很高,那麼你只能寫,如果RTS很低,你只能閱讀。我們檢查了示波器上的通信線路,並且RTS線總是高電平,這意味着我們的程序只能發送字節,但不能從外部讀取任何字節或數據。這是DataReceived事件永遠不會執行的主要原因,因爲它從不會看到任何傳入的字節或數據。
所以,看看我的串口設置後,你能告訴我我失蹤了什麼。
請參閱答案中的修改。 – dbasnett
謝謝,dbasnett。 – ThN