使用FIFO功能可以使用3字节超时中断功能。
现在只有一个问题没有解决。
按照手册说明:在使用FIFO功能下,产生Rx interrupt可以由下列条件:1:Each time receive data gets to the trigger level of receive FIFO, the Rx interrupt will be generated.
2:When the FIFO is not empty and does not receive data during 3 word time, the Rx interrupt will be generated(receive time out).
现在发现如果我的一包数据正好满足2个条件那么怎么处理?程序怎么知道不是超时产生的中断?
在sansung网站下到的资料对超时中断范例:
void __irq Uart0_RxFifoInt(void)
{
rI_ISPC=BIT_URXD0;
// if(rUFSTAT0==0)
// Uart_Printf("time out\n");
while( (rUFSTAT0&0xf) >0 ) //until FIFO is empty
{
keyBuf[keyBufWrPt++]=rURXH0;//rx buffer->keyBuf[]
if(keyBufWrPt==KEY_BUFLEN)
keyBufWrPt=0;
}
}
在我试验后用rUFSTAT0==0判断不出超时中断
。想请问大家有没解决办法?
怀疑超时标志是这样判断。在试过以后其实没有作用。不知道为什么?