可能重复:
C# 串行端口和超级终端
问题
我的串行连接有问题。我可以将数据发送到我的设备,但我无法读取数据。如果我使用 Hyperterm,一切都可以正常工作 - 我看到数据进出。
但是,使用我的代码,我的串行端口对象从不接收任何数据,但我发送的数据被设备接收。
有任何想法吗?
项目信息:
- WPF
- .NET 3.5(不是客户端配置文件版本)
- 在 Windows 7 上开发
- 视觉工作室 2010
- DA-15 串口转 USB
超期设置:
- COM20
- 每秒位数:115200
- 数据位:8
- 奇偶校验:无
- 停止位:1
- 流量控制:无
C#代码:
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,但以防万一。