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