From 9215d91eb5471e4bdfe296d23440be11c5270ca4 Mon Sep 17 00:00:00 2001 From: bmy <2583236812@qq.com> Date: Wed, 20 Mar 2024 01:05:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E5=B8=A7=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E8=BF=9B=E5=85=A5=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/by_frame.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 的话也是异步操作