打印
[其他]

外部中断程式无任何反应

[复制链接]
2899|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2021-11-5 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位安安
这边有遇到一个有关于外部中断问题想请教大家
(使用MM32F031C8T6)
我尝试用范例改过使用PB0去做外部中断
可是外部中断程式无任何反应(也就是一直都不会主动跳进中断副程式)
但一般的GPIO却有反应这样...
因为解很久...都没有头绪了
想问大家这要怎么解决 不好意思 麻烦各位了
中断程式码如下:
//******************************************************************************
//Function: EXTI_Init:
//Type          :
//******************************************************************************
void EXTI_Init(void){
        RCC->AHBENR|=0x3<<17;
            RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;           //System configuration register enable  
        GPIOB->CRL &= 0xFFFF0FF0;
        GPIOB->CRL |= GPIO_CRL_CNF0_1;
        Ex_NVIC_Config(_EXTI_GPIOB_,0,_EXTI_FTIR_); //下降沿触  
        NVIC_Init(2,0,EXTI0_1_IRQn,2);                                //抢占2,子优先级0,组2         
}
//******************************************************************************
//Function: Ex_NVIC_Config:
//Type          :
//******************************************************************************
void Ex_NVIC_Config(uint8_t p_GPIO,uint8_t p_Bit,uint8_t TRIM){
    uint8_t m_EXTAddr;
    uint8_t m_EXTOffset;
    m_EXTAddr=p_Bit/4;//得到中断寄存器组的编号
    m_EXTOffset=(p_Bit%4)*4;
    //RCC->APB2ENR|=0x01;//使能io复用时钟                        
    SYSCFG->EXTICR[m_EXTAddr]&=~(0x000F<<m_EXTOffset);//清除原来设置!!!
    SYSCFG->EXTICR[m_EXTAddr]|=p_GPIO<<m_EXTOffset;//EXTI.BITx映射到GPIOx.BITx
    //自动设置
    EXTI->IMR|=1<<p_Bit;//  开启line BITx上的中断
         //EXTI->IMR = 0;//Disable LINE BITX interrupt
    //EXTI->EMR|=1<<BITx;//不屏蔽line BITx上的事件 (如果不屏蔽这句,在硬件上是可以的,但是在软件仿真的时候无法进入中断!)
    IF(TRIM&0x01)EXTI->FTSR|=1<<p_Bit;//line BITx上事件下降沿触发
    if(TRIM&0x02)EXTI->RTSR|=1<<p_Bit;//line BITx上事件上升降沿触发
}         
//******************************************************************************
//Function: EXTI0_1_IRQHandler:
//Type          :
//******************************************************************************  
void EXTI0_1_IRQHandler(void){
        __NOP();
        if( P_B0 == 0){        
                __NOP();
  
          }
     EXTI->PR=1<<0;  //清除LINE0上的中断标志位   
}

使用特权

评论回复
沙发
redone| | 2021-12-14 15:46 | 只看该作者
帮楼主顶一下

使用特权

评论回复
板凳
onlycook| | 2021-12-14 16:23 | 只看该作者
没遇到过,不好意思,路过

使用特权

评论回复
地板
redone| | 2021-12-18 16:50 | 只看该作者
楼主搞定了没,这个好像难住了

使用特权

评论回复
5
sadicy| | 2022-1-17 10:31 | 只看该作者
确实好想难道了

使用特权

评论回复
6
海滨消消| | 2022-2-16 10:39 | 只看该作者
这个貌似成了世纪难题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

966

主题

2953

帖子

7

粉丝