SerialPort.DataRecived事件未触发C#



我正在尝试实现以下代码,以便捕获通过串行连接传入的信息。我正在使用.NET串行端口类:

//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引脚,我试图写一条消息来触发事件,看看它是否工作。我似乎无法让事件触发"Got Here"文本从未出现在我的控制台中。我知道数据将进入我的接收缓冲区,因为我可以调用serialPort.ReadExisting()并查看我最初输入的消息。

有人能告诉我为什么这个活动可能不会启动吗?

 serialPort = new SerialPort();  

你错了。您覆盖设计器创建的SerialPort对象引用。已分配DataReceived事件的。您的对象没有分配该事件。所以它永远不会着火。

删除那一行。

相关内容

  • 没有找到相关文章

最新更新