TI工程师你好,
我在官方例程“uart_demo”内增加配置了一个串口接收中断和串口接收空闲中断,但只有串口接收中断生效了,空闲中断一直没有生效,请问是我初始化配置的有问题吗?
串口配置函数如下:
//
// Initialising the Terminal.
//
InitTerm();
MAP_UARTFIFODisable(UARTA0_BASE);
MAP_UARTIntRegister(UARTA0_BASE,uart0_handle);
MAP_UARTIntEnable(UARTA0_BASE,UART_INT_RT|UART_INT_RX);
串口接收中断函数如下:
void uart0_handle(void)
{
int lRetVal = 0;
lRetVal = MAP_UARTIntStatus(UARTA0_BASE,true); //读取串口中断源
if(lRetVal & UART_INT_RT) //串口空闲中断,(已使能此中断,但一直不进)
{
UARTRxCplish = 1;
}
if(lRetVal & UART_INT_RX) //串口接收中断
{
while(UARTCharsAvail(UARTA0_BASE))
{
*UART0WtPtr = MAP_UARTCharGet(UARTA0_BASE);
if(UART0WtPtr < &g_ucUARTBuffer[MaxUART0RxBufLen])
{
UART0WtPtr++;
}
else
{
UART0WtPtr = &g_ucUARTBuffer[0];
}
}
}
MAP_UARTIntClear(UARTA0_BASE,UART_INT_RT|UART_INT_RX); //清中断
}