UART使用方面遇到一个问题,寻求帮助

背景: UART用作和下位机通讯,发送的报文长度已知,接收到的报文长度未知。选型的MCU不支持DMA,所以采用FIFO收发,使能FIFO接收中断和接收超时中断。

问题:如果收到的报文数量刚好是设置FIFO深度的整数倍,就不会产生超时中断了。例如设置FIFO深度为12,如果接收到的报文长度为132字节,进入11次中断后(实际)接收完成,但是程序并不知道是否接收完成。我想利用超时中断,收不到数据的时候认为接收完成了,可这时候不会产生超时中断。如果接收报文长度为133字节的话,进入11次接收完成中断后,还会进入一次接收超时中断,程序可以在超时中断中检查数据时候正确接收。

            由于接收到的报文长度未知,总有可能是FIFO深度的整数倍,这样就不产生超时中断了,请教一下有什么好的办法来解决这个问题呢?