一只叫虎儿的猫 发表于 2024-5-24 14:20:49

为什么我的接收中断没有生效?!


void uart2init(void)//9600bps@11.0592MHz
{
        LED0=1;
        LED1=1;
        S2CON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x04;                //定时器时钟1T模式
        T2L = 0xE0;                        //设置定时初始值
        T2H = 0xFE;                        //设置定时初始值
        AUXR |= 0x10;                //定时器2开始计时
        IE2   = ES2;              // 使能串口中断
        EA    = 1;                  // 开总中断
        uart2busy = 0;               //总线忙不忙
}


我先初始化了串口2 。
然后设置中断。


void Uart2Isr() interrupt 8 //using 1
{

   if (S2CON & 0x02)         // 发送中断标志判断
    {
      S2CON &= ~0x02;         // 清中断标志
      LED1 = !LED1;         // 测试端口
      uart2busy = 0;               // busy=0满足发送条件
    }
    if (S2CON & 0x01)         // 接收中断标志判断
    {
      S2CON &= ~0x01;         // 清中断标志
        LED0 = !LED0;         // 测试端口
    }

}
为什么发送时LED1会取反闪起来。但是电脑端的发送。MCU的接收,没有进入接收中断。LED0一直没有闪?


神农鼎 发表于 2024-5-24 14:26:25


从正确开始,而不是从错误开始


https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=375&pid=2070

页: [1]
查看完整版本: 为什么我的接收中断没有生效?!