关于GD32F407串口接收消息的问题

关于串口接受消息的问题,串口屏向mcu 发送

img


这样一条信息,我只能在寄存器里读到5A这一个,剩下的该怎么读出来呢

问题相关代码,请勿粘贴截图

这个是串口的中断函数

void USART5_IRQHandler(void) {

if(RESET != usart_interrupt_flag_get(USART5, USART_INT_RBNEIE)){
    rx_buffer[rx_counter] = (uint8_t)usart_data_receive(USART5);
      rx_counter++;
        DISABLE_INT();
        offset_rx++;
        ENABLE_INT();
    if(rx_counter >= BUFFER_SIZE){
        rx_counter = 0;    
    }
}

}

运行结果及报错内容

img

我的解答思路和尝试过的方法

由于本人不太熟悉用法,请求指点

我想要达到的结果

MCU获得串口发送的完整信息


void USART5_IRQHandler(void) 
{
    u8  data;
    
    if(RESET != usart_interrupt_flag_get(USART5, USART_INT_RBNEIE))
    {
         data= (uint8_t)usart_data_receive(USART5);
           
        //这里一定要先判断头,比如头是0xAA
        if(data==0xAA)
        {
            rx_counter =0;
        }
        rx_buffer[rx_counter] = data;
        rx_counter++;
        
        DISABLE_INT();
        offset_rx++;
        ENABLE_INT();
        if(rx_counter >= BUFFER_SIZE)
        {
            rx_counter = 0;    
        }
    }
}

使用官方SDK例子