找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 299|回复: 5
打印 上一主题 下一主题
收起左侧

单片机开启了P2.7下降沿中断,但是并没有进入中断

[复制链接]
跳转到指定楼层
楼主
ID:1171364 发表于 2026-5-15 12:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// 使用STC32G144K246,开启了P2.7下降沿中断,但是并没有进入中断是怎么回事呀   
P2PU |=  (1<<7);    // 使能上拉
        
        P2IM0 &= ~(1<<7);
        P2IM1 |= (1<<7);
        P2IM2 &= ~(1<<7);        // 低电平
        PINIPL |= (1<<2);
        PINIPH |= (1<<2);        // 最高优先级
        P2INTF = 0x00;                // 清除中断标志位
        P2INTE |= (1<<7);        // 开启P2.7中断  
        EA = 1;

void P2_ISR(void) interrupt USER_VECTOR
{
        uint16_t distance;
        if(P2INTF & (1<<7))
        {
                P2INTF &= ~(1<<7); // 清除中断标志
        distance = VL53_GetDistance();
        if(distance != 0xFFFF)
        {
            OBS_WriteBuffer(distance);
        }
        }
}


  
        CSEG    AT  013BH   ;P2IO中断
    LJMP    006BH       ;跳转到13号中断

    END


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1064915 发表于 2026-5-15 16:17 | 只看该作者
STC32了,厉害
回复

使用道具 举报

板凳
ID:1171459 发表于 2026-5-17 01:35 | 只看该作者
是不是配置成了低电平触发呀
回复

使用道具 举报

地板
ID:1043481 发表于 2026-5-22 14:30 | 只看该作者
// 1. P2.7 上拉 P2PU |= (1 << 7);  // 2. 配置下降沿触发(IM1=0, IM0=0) P2IM0 &= ~(1 << 7);   // 0 P2IM1 &= ~(1 << 7);   // 0  → 下降沿  // 3. 设置优先级(最高) PINIPL |= (1 << 2); PINIPH |= (1 << 2);  // 4. 清标志、使能 P2INTF = 0x00; P2INTE |= (1 << 7);  // 5. 全局中断 EA = 1;
回复

使用道具 举报

5#
ID:1043481 发表于 2026-5-22 14:31 | 只看该作者
void P2_ISR(void) interrupt 38 {     if (P2INTF & (1 << 7))     {         P2INTF &= ~(1 << 7);  // 先清标志         uint16_t distance = VL53_GetDistance();         if (distance != 0xFFFF)         {             OBS_WriteBuffer(distance);         }     } }
回复

使用道具 举报

6#
ID:1043481 发表于 2026-5-22 14:31 | 只看该作者
CSEG    AT  0133H   ; P2IO中断(中断38) LJMP    P2_ISR      ; 跳转到C中断函数 END
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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