打印

求助UCOS的Uart0中断问题

[复制链接]
1198|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxd861638|  楼主 | 2013-9-23 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助UCOS的Uart0中断问题

程序结构式:产生接收中断,根据接收的数据,再发送数据,没有发送完,在产生发送中断,将数据发送完。

1.现在我的问题是只能进入1次接收中断,不能产生发送中断,所有的任务都不执行了。
2.但是如果将OSIntExit();注销,就可以进入发送中断,所有的任务都不能执行了。

到底是什么问题呢?



void IntUart0(void)   //Uart0接收中断
{                                                                                                                       
        #if OS_CRITICAL_METHOD == 3
        OS_CPU_SR  cpu_sr;
        #endif
        OS_ENTER_CRITICAL();                     
        OSIntNesting++;
        OS_EXIT_CRITICAL();

       
        ulStatus = UARTIntStatus(UART0_BASE, true);            //  读取当前中断状态
        UARTIntClear(UART0_BASE, ulStatus);                     //  清除中断状态
       
        if((ulStatus&UART_INT_RT)||(ulStatus&UART_INT_RX))//接收超时中断, 接收中断
        {
        我的程序
        }
        else if (ulStatus&UART_INT_TX)                             // 发送中断
          {
        我的程序
        }       
        else
        {
        }       
        OSIntExit();
}

相关帖子

沙发
dirtwillfly| | 2013-9-23 19:56 | 只看该作者
不懂UCOS,帮顶

使用特权

评论回复
板凳
gaochy1126| | 2013-9-23 23:31 | 只看该作者
清楚中断标志了么?

使用特权

评论回复
地板
firstblood| | 2013-9-23 23:32 | 只看该作者
这个的却是需要注意的,检查下接收中断口的吧,特别是相关的寄存器的配置的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

1

粉丝