首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

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

2012-03-07 
UCOS2 中串口中断void Uart0_Exception(void){uint8 iif ((U0IIR & 0x0F) 0x04){rcv_new0 1// 设置

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接收中断标志位,导致中断连续触发,然后系统就死掉了.

热点排行