uint8 UartReceive() { uint8 IsTmeOut=0;//定义超时参数,超时后赋值为0xFF for(i=0;i<5;i++) { ReceiveBuf=UART1Getch(&IsTimeout);//接收一字节 if(IsTimeout==0xFF) return 0xFF; } } 接收一字节的函数UART1Getch(uint8 *IsTimeout)中采用中断方式。 接收5个字节。假如接收第一个字节超时,则整个接收函数UartReceive退出, 这时后面的4字节数据因没有被UartReceive()函数取走会保存在哪个地方?在下一次调用函数时才被取走还是自动被冲掉?U0FCR采用的是1字节触发。 那中断呢?因没有被处理会被记录在U0IIR中的? |