Stm32串口通信接收数据错位问题

两个stm32最小系统板用串口收发数据,程序中自己写的协议是,当收到0XAA后,继续接收,否则重新接收→当收到0XAB后,继续接收,否则重新接收→接收ID(eg:0xA1)→接收数据→接受结束符0XBB。
现在问题是在接收数据的位置接收到了两个起始符或者结束符
求大佬解答😖😖😖