N32905处理器裸机C开发 串口数据丢失问题

用的ARM9 N32905处理器裸机C开发,在串口使用过程中总是偶尔出现数据帧丢失,具体表现:
1、串口进入中断处理函数后,偶尔在中断处理函数中读FSR状态寄存器,u32Count = (inpw(REG_UART_FSR+u32UartPort) & Rx_Pointer) >> 8; 得到FIFO中的可读数据数量为0,为什么可读数据数量为0会进入中断
2、使能超时寄存器UA_TOR, 超时进入中断,偶尔也会出现在 u32Count = (inpw(REG_UART_FSR+u32UartPort) & Rx_Pointer) >> 8; 得到FIFO中的可读数据数量为0。
只要出现上述情况,就会丢失数据,求帮助!!

问题已经解决,是被其他模块定时器中断影响了

u32Count = (inpw(REG_UART_FSR+u32UartPort) & Rx_Pointer) >> 8

重点关注这个计算,看看是不是计算问题

这个计算是没问题的,是从FIFO计算器中读取Tx FIFO Buffer Pointer,就是FIFO中的可读数据数量