s3c6410 UART0 中断
时间:10-02
整理:3721RD
点击:
中断服务程序:
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一直进中断,我不是已经在中断服务程序里清除了中断标志位了吗?求解!
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一直进中断,我不是已经在中断服务程序里清除了中断标志位了吗?求解!
啊u 啊啊。学得怎样了
中断是用汇编才能进入cpu中进行中断设置的,不是用c来设置的