This commit is contained in:
bmy
2024-03-11 19:35:02 +08:00
8 changed files with 135 additions and 33 deletions

View File

@@ -49,7 +49,7 @@ void by_frame_parse(uint8_t data_num, uint32_t *data_array)
uint16_t crc_cal = 0;
uint32_t read_length = 50;
if (fifo_used(&frame_fifo) >= 12) {
if (fifo_used(&frame_fifo) >= 4 + 4 * data_num) {
fifo_read_buffer(&frame_fifo, frame_buffer_parse, &read_length, FIFO_READ_AND_CLEAN);
while (1) {
if (cnt_ptr < 50) {
@@ -88,8 +88,9 @@ void by_frame_parse(uint8_t data_num, uint32_t *data_array)
if (!cnt_crc) {
if (crc_cal == crc16_check(data_array_temp, 2 + data_num * sizeof(uint32_t))) {
memcpy(data_array, data_array_temp + 2, data_num * sizeof(uint32_t));
fifo_clear(&frame_fifo); // TODO 确认是否有必要清除
// lwrb_reset(&lwrb_struct); // 处理完直接清空缓冲区,避免堆积产生处理阻塞
memset(data_array_temp, 0, sizeof(data_array_temp));
// printf("parsed done!\r\n");
for (uint8_t i = 0; i < data_num; i++) {
for (uint8_t j = 0; j < 4; j++) {
uart_write_byte(DEBUG_UART_INDEX, data_array[i] >> (j * 8));