串口数据处理

时间:2015-04-21 08:09:35

标签: c# serial-communication

我有这段代码:

private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
{
    while(_serialPort.BytesToRead > 0)
    {
       var count = _serialPort.BytesToRead;
       var bytes = new byte[count];
       _serialPort.Read(bytes, 0, count);
       AddBytes(bytes);
    }
}

代码取自Serial Port Polling and Data handling

我的问题是关于While循环。 “_serialPort.BytesToRead”何时更新?意思是,如果上面的方法是一个事件驱动的方法,并且我使用“_serialPort.Read”,是不是它清除了所有的串口缓冲区?如果答案是否定的,这段代码可以创建一个无限循环,不是吗?

0 个答案:

没有答案