当前位置: 代码迷 >> WinCE >> UCOS2 中串口中断,该怎么处理
  详细解决方案

UCOS2 中串口中断,该怎么处理

热度:144   发布时间:2016-04-28 13:22:49.0
UCOS2 中串口中断
void Uart0_Exception(void)
{
uint8 i;

if ((U0IIR & 0x0F) == 0x04)
{
rcv_new0 = 1; // 设置接收到新的数据标志
for (i=0; i<8; i++)
{
Rx_buf0[i] = U0RBR; // 读取FIFO的数据,并清除中断
}
}
VICVectAddr = 0x00; // 中断处理结束
}

上面是 中断服务子程序。
我在UC/OS2中一个任务里加上以下代码:
  if(rcv_new0 == 1)
 {
  UART0_Printf("\r\nBBBBB\r\n");
  rcv_new0 = 0;
 }

然后,我用串口调试工具给ARM板发了个数据,结果是系统死了。当然,串口没有 输出过 BBBBB  

什么原因啊? 在UC/OS2 中 写中断,有其他需要注意的吗?

------解决方案--------------------
没有清UART接收中断标志位,导致中断连续触发,然后系统就死掉了.