【发布时间】:2020-05-19 10:03:23
【问题描述】:
我是串行编程的新手,我在 stackoverflow 上阅读了很多答案,但似乎没有一个适合我的场景。
场景
我有一个 ESP32WROOM 模块,它根据请求通过串行端口发送一些字节,消息的结构是这样的:
前四个字节是消息长度,接下来的四个字节是命令,然后是有效负载,消息的最后一个字节是流字节的校验和。因此,例如,它看起来是这样的:
MESSAGE LENGTH COMMAND PAYLOAD CHECKSUM
0x00,0x00,0x02,0x05,0xBB,0xBB,0xBB,0xBB, .........., 0xCC
我在 C# 中的问题
现在我尝试通过串行发送的文件是我的 ESP32WROOM 从 Internet 下载的 5Mb 文件,该文件以 517 字节的块通过串行发送(按照我上面所说的方式..消息长度, 命令等..)。
我正在使用的c#端
port_DataReceived
监听传入的串行传输和
buffer = new byte[port.BytesToRead];
port.Read(buffer, 0, buffer.Length);
从串行读取,但是我没有一次收到所有 517 字节。我真的不明白发生了什么,所以请任何人提供任何代码来完成我的任务,因为我失去了希望?
非常感谢
【问题讨论】:
标签: c# serial-port esp32