110,566
社区成员
发帖
与我相关
我的任务
分享
DiscardOutBuffer
这么一句。
原本来说,你使用 sr.Read(...) 就把缓冲区里边的内容读取走了,你用得着特意去“丢弃缓冲区中的数据”吗?写 DiscardOutBuffer 应该是一个 bug。虽然可能暂时不出错,以至于是多余的代码,但是这个没用的代码在特定情况下、特意设计的测试下一定出 bug。所以不应该写 DiscardOutBuffer 代码。 for (int i = 0; i < 8; i++)
{
receviedBuf[i] = Convert.ToByte(comPort.ReadByte());//读取数据
comPort.DiscardInBuffer();
}
操作:串口软件源源不断的发送8字节数据帧,测试demo采用断点调试
现象:receivedBuf中被8字节数据帧中的第一个字节填满,也就是说我不断发送11 22 33 44 55 66 77 88这帧数据,receivedBuf被赋值11 11 11 11 11 11 11 11
分析:写入的数据帧是一次性写入的,不存在同一数据帧分字节写入,ReadByte是同步读取读取的
问题:可能断点操作存在延时性,让数据帧有足够的时间全部写入