Aks*_*kre 3 c# buffer serial-port serial-communication
从串口读取时我使用的是serialport.read(xyz,0,4),其中xyz是一个字节数组.
问题1:这样做的时候,我读过的数据是否会从串口缓冲区中删除?或者是否有一个递增的指针?
问题2:
private void moduleSerialPort_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e)
{
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
如果在执行先前数据的代码时收到新数据,是否会触发接收数据的事件?
我发现,当我的系统运行几个小时后,事情发生了:当传输新数据时,它是在串行端口上接收的,但是计算机先前已经处理过数据.所以我怀疑数据是否保留在缓冲区中并在下一个datareceived事件上执行.
有人可以帮帮我吗.感谢您的帮助.谢谢
数据保留在缓冲区中,直到您阅读它为止.简单地处理DataReceived事件不会导致数据出列,您实际上必须阅读它.如果读取的内容少于整个缓冲区,则下次DataReceived发生事件时,您将在新数据之前读取旧的剩余内容.
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |