gpt4 book ai didi

c# - 通过 C# 进行串口通信

转载 作者:行者123 更新时间:2023-11-30 15:03:55 25 4
gpt4 key购买 nike

从串口读取时我正在使用serialport.read(xyz,0,4)其中 xyz 是一个字节数组。

问题1:这样做的时候,读取的数据是否从串口缓冲区中删除了?或者是否有一个递增的指针?

问题二:

private void moduleSerialPort_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e)
{
.
.
.
}

如果执行之前数据的代码时接收到新的数据,是否会触发数据接收事件?

我发现当我的系统运行几个小时后发生了以下事情:当新的数据被传输时,它在串行端口上被接收,但是计算机处理先前发送的数据。所以我怀疑数据是否保留在缓冲区中并在下一个数据接收事件上执行。

谁能帮帮我。感谢你的帮助。谢谢

最佳答案

在您读取数据之前,数据一直保留在缓冲区中。简单地处理 DataReceived 事件不会导致数据出列,您实际上必须读取它。如果您读取的内容少于整个缓冲区,那么下次 DataReceived 事件发生时,您将在读取新数据之前读取旧的剩余数据。

关于c# - 通过 C# 进行串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com