我正在尝试实现以下代码,以捕获通过串行连接传入我的信息。我使用 .NET SerialPort 类:
//serial port initialization
serialPort = new SerialPort();
serialPort.PortName = "COM7";
serialPort.BaudRate = 19200;
serialPort.Parity = Parity.Even;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Handshake = Handshake.None;
serialPort.ReceivedBytesThreshold = 1;
//this is how the handler is added in Form1.Designer.cs
this.serialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.DataReceivedHandler);
//Handler
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
Console.WriteLine("Got Here");
while (serialPort.BytesToRead > 0)
{
byteBuffer.Add((byte)serialPort.ReadByte());
ProcessByteBuffer(byteBuffer);
}
}
我在 RS232 端口上物理连接了我的 Rx 和 Tx 引脚,我试图写一条消息来触发事件以查看它是否工作。我似乎无法让事件触发“到达这里”文本从未出现在我的控制台中。我知道数据将进入我的接收缓冲区,因为我可以调用 serialPort.ReadExisting() 并查看我最初输入的消息。
谁能告诉我为什么这个事件可能不会触发?