各位好,LPC1766的Urat0 设置的中断接收,
void uart0Init (void)
{
INT16U ulFdiv;
U0LCR = 0x83; /* 允许设置波特率 */
ulFdiv = (FPCLK / 16) / UART0_BPS; /* 设置波特率 UART0_BPS=4800 */
U0DLM = ulFdiv / 256;
U0DLL = ulFdiv % 256;
U0LCR = 0x1B; /*8位数据 1位停止 偶效验 */
U0FCR = 0x87; /* 使能FIFO,设置8个字节触发点 */
U0IER = 0x01; /* 使能接收中断 */
}
设置的优先级最高,
本设备定时向另一设备B发送2个字节的数据,B收到数据马上响应,也回传2个字节的数据。
按理来讲本设备应该每次都能够响应中断,但事实有经常收不到数据的情况(大约1/5的概率),用串口工具截取数据发现LPC1766的RX端肯定是有数据,但LPC1766就的不响应。
而且在正常中断后读取U0RBR的数据,还是两个字节,说明U0RBR和USRSR中就是收到2个字节的数据,
那么Urat0 怎么就有时候接收不到数据呢?
请教各位了。 |