UCOS的Uart0中断

[复制链接]
696|16
 楼主| jiahy 发表于 2016-6-28 19:46 | 显示全部楼层 |阅读模式
只能进入1次接收中断,不能产生发送中断,所有的任务都不执行了
lizye 发表于 2016-6-28 19:46 | 显示全部楼层
结构式
 楼主| jiahy 发表于 2016-6-28 19:47 | 显示全部楼层
产生接收中断,根据接收的数据,再发送数据,没有发送完,在产生发送中断,将数据发送完。
liliang9554 发表于 2016-6-28 19:47 | 显示全部楼层
将OSIntExit();注销呢
 楼主| jiahy 发表于 2016-6-28 19:48 | 显示全部楼层
注销,就可以进入发送中断
shimx 发表于 2016-6-28 19:48 | 显示全部楼层
任务都不能执行了
 楼主| jiahy 发表于 2016-6-28 19:48 | 显示全部楼层
是啊,所有的任务都不能执行了。
spark周 发表于 2016-6-28 19:48 | 显示全部楼层
有程序吗
 楼主| jiahy 发表于 2016-6-28 19:49 | 显示全部楼层

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();
}
liliang9554 发表于 2016-6-28 19:49 | 显示全部楼层
我也之前见过这个程序
午夜粪车 发表于 2016-6-28 19:49 | 显示全部楼层
清楚中断标志了么?
zhaoxqi 发表于 2016-6-28 19:50 | 显示全部楼层
这个的却是需要注意的,检查下接收中断口的吧
huangchui 发表于 2016-6-28 19:50 | 显示全部楼层
对,特别是相关的寄存器的配置的
 楼主| jiahy 发表于 2016-6-28 19:50 | 显示全部楼层
对,我看下
Thorald 发表于 2016-6-30 21:50 | 显示全部楼层
中断执行完是不是得清标志位啊
pmp 发表于 2016-7-1 23:57 | 显示全部楼层
你的中断里面有多少的函数呢
pmp 发表于 2016-7-1 23:58 | 显示全部楼层
uosc的时钟是怎么分配的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

862

主题

9861

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部