找回密码
 立即注册
查看: 247|回复: 1

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-05-24 14:18:04

1

主题

1

回帖

13

积分

新手上路

积分
13
发表于 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一直没有闪?


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-5-24 14:26:25 | 显示全部楼层

从正确开始,而不是从错误开始
截图202405241425423342.jpg

https://www.stcaimcu.com/forum.p ... id=375&pid=2070

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:31 , Processed in 0.338407 second(s), 56 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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