初级会员

- 积分
- 166
- 金钱
- 166
- 注册时间
- 2013-6-14
- 在线时间
- 8 小时
|
1金钱
自己写了个串口中断,只发送一个字节会进入两次中断,然后程序就死了,停在
while (DEF_TRUE) {
;
}
我的中断函数:arm7
void __irq UART3_ISR(void)
{
CPU_INT08U data;
CPU_INT08U i;
OS_CPU_SR cpu_sr;
OS_ENTER_CRITICAL(); //????????,????// Tell uC/OS-II that we are starting an ISR
OSIntEnter();
OS_EXIT_CRITICAL(); //????????
do
{
switch (U3IIR & 0x0e)
{
case 0x04: // ½óêÕÖD¶Ï,FIFOÂúÖD¶Ï
{
data = U3RBR;
}
break;
case 0x0c: // ½óêÕ3¬ê±ÖD¶Ï
break;
case 0x02: // ·¢ËíÖD¶Ï
break;
case 0x06:
i = U3LSR;
break;
default:
break;
}
} while ((U3IIR & 0x01) == 0);
VICVectAddr = 0x00;
OSIntExit();
}
|
|