【发布时间】:2025-11-28 04:55:02
【问题描述】:
我正在尝试从通过 USB 连接的设备读取数据。 创建触发器的代码如下所示:
private SerialPort realTimePort;
realTimePort = new SerialPort();
realTimePort.BaudRate = 9600;
realTimePort.PortName = "COM4";
realTimePort.ReadTimeout = 5000;
realTimePort.ReadBufferSize = 32768;
realTimePort.ReceivedBytesThreshold = 1;
realTimePort.BaudRate = 9600;
realTimePort.ReadBufferSize = 4096;
realTimePort.ParityReplace = 63;
realTimePort.Parity = Parity.None;
realTimePort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(realTimePort_DataReceived);
realTimePort.Open();
要读取发送的数据,代码如下:
public void realTimePort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// Do something with the data
}
使用一个版本的设备一切正常,并且在发送数据时触发开始,但使用更新的设备软件版本 realTimePort_DataReceived 永远不会触发。 起初我认为问题可能是设备从不发送数据,但后来我尝试使用 "Tera Term" 读取数据,我可以准确地看到我所期待的。我还将数据与“Tera Term”进行了比较,该数据是由具有不同软件版本的设备发送的,但它完全相同的字符串。 您有什么想法,为什么该事件是由旧软件版本而不是新版本触发的? 设备制造商的员工已经给了我 SerialPort 的规格,因为我遇到了这个问题,但它没有帮助我。
【问题讨论】:
标签: c# events serial-port usbserial