使用的是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++;
}
}
}