diff --git a/app/by_frame.c b/app/by_frame.c index 15b748f..bed8a72 100644 --- a/app/by_frame.c +++ b/app/by_frame.c @@ -44,8 +44,9 @@ void by_frame_parse(uint8_t data_num, uint32_t *data_array) uint8_t frame_buffer[4 + 8] = {0}; uint8_t buf[sizeof(frame_buffer)] = {0}; - if (len < 4 + 4 * data_num) { - // 缓冲区内长度小于帧长度,直接返回 + if (len < 2 * (4 + 4 * data_num)) { + // 当前要求缓冲区满 + // (x) 缓冲区内长度小于帧长度,直接返回 // 要是每次读的时候缓冲区内就只有前一帧的尾部和后一帧的头部,岂不是很尴尬 // 是不是应该正确解析之后再把过的部分清空?但是是异步操作,实际上缓冲区内已经是新数据了 // 可是直接读取 fifo 的话也是异步操作