波特率是115200
串口接收函数:
uint8_t uart_receive(void)
{uint8_t temp;
uint32_t u32delayno=0;
while(UART0_UA_FSR_bit.RX_EMPTY) /* Check RX empty => failed */
{u32delayno++;
if(u32delayno >= 0x400)
return FALSE;
}
temp= UART0_UA_RBR_bit.RBR; /* Get Data from UART RX */
return temp;
}
在主程序里只执行以下语句接收128个串口数据,没有其他中断操作。
for(i=0; i<128; i++)
{code_buffer[i] = uart_receive(); }
但是只能接收到13个字节,其余字节全部是0。
检查发现有UART0_UA_FSR_bit.RX_OVER_IF为1,提示接受FIFO溢出。
不知道问题在哪里?
|