我的串口连接有问题。我可以将数据发送到我的设备,但我无法读取数据。如果我使用Hyperterm,每个工作都很好 - 我看到数据进出。
但是,使用我的代码,我的串口对象永远不会收到任何数据,但我发送的数据会被设备接收。
有什么想法吗?
SerialPort serial = new SerialPort();
serial.PortName = "COM20";
serial.BaudRate = 115200;
serial.DataBits = 8;
serial.Parity = Parity.None;
serial.StopBits = StopBits.One;
serial.Handshake = Handshake.None;
serial.Open();
serial.Write("Hello World\r\n"); // Echoed on device screen
while (0 == serial.BytesToRead) // Never receive a response
System.Threading.Thread.Sleep(100);
char[] first = new char[serial.BytesToRead];
serial.Read(first, 0, first.Length);
我在上面注意到了,但为了确保每个人都知道,我正在使用USB转串口电缆。我不认为这是问题,因为它适用于Hyperterm,但以防万一。
答案 0 :(得分:4)
看看MSDN Example他们正在使用一个单独的线程来检查数据。您还可以订阅DataReceived Event以查看它是否正在解雇。有关于将DTR和RTS设置为true的社群评论,如果连接的设备需要它们,则不会传输数据。