Windows XP 下 SerialPort 对象不接收任何数据

SerialPort object does not receive any data under Windows XP

我有一个 SerialPort 对象来控制连接到虚拟 com 端口的 gsm 调制解调器。我的问题是在 Windows XP 下我没有收到任何数据。如果定期调用,DataReceived 事件不会触发,也不会输出 port.ReadExisting() 任何数据。但是当我关闭我的程序并用腻子连接到这个端口时,会显示调制解调器的响应。

下Windows7条数据接收正确

这可能是什么问题?

需要启用软件握手。

this.serialPort.Handshake = System.IO.Ports.Handshake.XOnXOff;

我通过比较程序中的 putty 设置和串口设置发现了这一点。所以问题不是操作系统本身,而是使用的流量控制。