中断服务程序:
void __irq Isr_UART0_Rx(void)
{
New_UART0_Rx |= BIT0; //有新数据
rUTXH0 = rURXH0;
rUINTSP0 = 0;
rUINTP0 =1; //清除中断标志
VICInterruptEnd(); //中断结束
}
__inline void VICInterruptEnd(void)
{
VIC0->ADDRESS = 0x00; //写入任何值都可以清除当前中断
VIC1->ADDRESS = 0x00; //写入任何值都可以清除当前中断
}
问题:当我在串口调试助手输入1是,理论上应该回显1,但问题是一直收到1,调试程序后发现cpu一直进中断,我不是已经在中断服务程序里清除了中断标志位了吗?求解! |