注册 登录
查看: 393|回复: 4

请问如何清除k60串口4中断标志?

[复制链接]
发表于 2014-4-29 15:38:14 | 显示全部楼层 |阅读模式
没有开发送中断,但是程序一直在中断里跳不出来,为什么
回复

使用道具 举报

 楼主| 发表于 2014-4-29 15:40:44 | 显示全部楼层
    UART_C2_REG(UARTx[uratn]) |= (UART_C2_TE_MASK | UART_C2_RE_MASK );
    UART_C2_REG(UARTx[uratn]) |= (UART_C2_TIE_MASK|UART_C2_TCIE_MASK|UART_C2_RIE_MASK);
    //设置是否允许接收和发送中断。通过设置 UART 模块的 C2 寄存器的
    //RIE 和 TIE 位实现。如果使能中断,必须首先实现中断服务程序;
    enable_irq(45+2*uratn);
    enable_irq(53);

void uart4_isr()
{int data;
if(UART4_S1&UART_S1_RDRF_MASK)
data=UART4_D;
if(data==0x11)DisableInterrupts;
UART_IS7816_REG(UART4_BASE_PTR)=0xff;
UART4_S1=0xff;
}
以上方法均不能解决……
UART0_IS7816 |=UART_IS7816_INITD_MASK;
编译器报错,没有定义UART4_IS7816
程序执行后一直在串口4中断程序里转,跳不出来;
回复 支持 反对

使用道具 举报

发表于 2014-4-29 16:03:22 | 显示全部楼层
读数据,就会清空接收数据标志位的啊。可以参考我们的串口中断例程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-29 19:18:42 | 显示全部楼层
不行
void uart4_isr()
{int data;
data=UART4_D;
if(data==0x11)DisableInterrupts;
return;
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-29 19:19:00 | 显示全部楼层
没用,跳不出来
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部