Clear serial port receive buffer in C#

后端 未结 4 1368
北海茫月
北海茫月 2020-12-15 08:57

Just want to know how do we clear the receive buffer of my serial port in C#. Seems like the data in the receive buffer just keep accumulating. For example, the flow of inc

4条回答
  •  半阙折子戏
    2020-12-15 09:07

    If you are using the System.IO.Ports.SerialPort then you could use the two methods:

    DiscardInBuffer() and DiscardOutBuffer() to flush the buffers.

    If you are reading the data from a serial port:

    private void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        if (!this.Open) return; // We can't receive data if the port has already been closed.  This prevents IO Errors from being half way through receiving data when the port is closed.
        string line = String.empty;
        try
        {
            line = _SerialPort.ReadLine();
            line = line.Trim();
           //process your data if it is "DATA C", otherwise ignore
        }
        catch (IOException ex)
        {
            //process any errors
        }
    }
    

提交回复
热议问题