系统中存在3个中断服务函数,其中UART 中断配置为self,优先级为12;还有GPIO中断优先级为8,配置为ALL;
在中断服务函数中:以中断方式接受数据,可以正常接受数据;以非中断、阻塞的方式发送数据;
为什么会在中断里面 u32int_id = UARTIntStatus(SOC_UART_1_REGS);的数值会出现 0 的情况呢?????
中断处理代码为:
void UARTISR ()
{
GR_U32 u32int_id = 0;
GR_U32 u32fifo_status = 0;
// 确定中断源
u32int_id = UARTIntStatus(SOC_UART_1_REGS);
// 发送中断
if (UART_INTID_TX_EMPTY == u32int_id)
{
if (DalUartSendBusy(UART1))
{
}
}
// 接收中断
else if (UART_INTID_RX_DATA == u32int_id)
{
}
else
{
//
}
Printf(":%d:\r\n",u32int_id);
}