UCOS下串口0接收中断死机,请帮忙



使用的是UCOS,每次串口接收中断来后,接收完后就进入void  OS_TaskIdle (void *p_arg)这个函数不出来了,单独发送并且发送中断都问题,单独接收就出现问题。请问是怎么回事。

下面是接收中断函数

 if((ulStatus&UART_INT_RT)||(ulStatus&UART_INT_RX))//接收超时中断, 接收中断
 {  
  while(UARTCharsAvail(UART0_BASE))     // 接收FIFO里有可用数据
  { 
   ucBuffer[ucNum]=UARTCharNonBlockingGet(UART0_BASE); 
   if((ucBuffer[ucNum]==10) ||(ucNum>40)) //判断是否接受完数据 换行  回车(ASCII码13)  换行(ASCII码10) 空格,ASCII码32
   {
    OSSemPost(UartRx_Semp);    
    ucNum=0;
    UARTIntDisable(UART0_BASE, UART_INT_RX|UART_INT_RT);
    UARTIntDisable(UART0_BASE, UART_INT_RX);    
    break;
   }
   else
   {
    ucNum++;
    
   }
  }
 }