我需要通過串口連接到傳感器,並從中讀取一些數據。我連接到它併發送命令,但設備沒有返回任何內容,而是拋出了超時異常。這裏的stackoverflow類似的問題使用OnDataReceived事件,我試過了,它沒有工作。我用來初始化的參數以及我發送的命令在膩子上按預期工作。通過串口連接到設備併發送命令,但沒有返回
- 我失去了什麼這裏
void Read()
{
SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
try
{
serialPort.Handshake = Handshake.XOnXOff;
serialPort.Encoding = new ASCIIEncoding();
serialPort.ReadTimeout = 1000;
serialPort.WriteTimeout = 900;
serialPort.Open();
serialPort.WriteLine("TEMP");
MessageBox.Show("Reading");
MessageBox.Show(serialPort.ReadLine());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
serialPort.Close();
}
}
謝謝
它是否可以通過命令行(或正確的終端應用程序)使用'echo test> com1:'工作? Moveover(但在你的例子中,這可能只是一個問題),你確定你的設備將按照'ReadLine'的預期回覆UNICODE文本嗎? –
您確定設備正在響應嗎?您是否使用[終端](http://realterm.sourceforge.net/)確認了這一點? – Groo
是的,我通過Putty.exe測試了設備,我剛剛嘗試過echo test> com1,它什麼都沒有返回 – Yohannes