[MM32硬件]

外部中断程式无任何反应

[复制链接]
402|6
手机看帖
扫描二维码
随时随地手机跟帖
shjuturt|  楼主 | 2022-7-25 15:30 | 显示全部楼层 |阅读模式
这边有遇到一个有关于[url=]外部中断[/url]问题想请教大家
(使用MM32F031C8T6)
我尝试用范例改过使用PB0去做外部中断
可是外部中断程式无任何反应(也就是一直都不会主动跳进中断副程式)
但一般的GPIO却有反应这样...
因为解很久...都没有头绪了
想问大家这要怎么解决 不好意思 麻烦各位了
中断程式码如下:
//******************************************************************************
//Func[url=]ti[/url]on: 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复用[url=]时钟[/url]                        
    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上的事件 (如果不屏蔽这句,在硬件上是可以的,但是在软件[url=]仿真[/url]的时候无法进入中断!)
    [url=]IF[/url](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上的中断标志位   
}

使用特权

评论回复
tpgf| | 2022-8-2 14:19 | 显示全部楼层
开启总中断了吗

使用特权

评论回复
nawu| | 2022-8-2 14:28 | 显示全部楼层
还需要对相应的io口进行初始化

使用特权

评论回复
aoyi| | 2022-8-2 14:36 | 显示全部楼层
楼主还是好好排版吧

使用特权

评论回复
zljiu| | 2022-8-2 14:43 | 显示全部楼层
请问什么叫做中断副程式?

使用特权

评论回复
gwsan| | 2022-8-2 14:51 | 显示全部楼层
中断向量没有屏蔽吧

使用特权

评论回复
tfqi| | 2022-8-2 14:59 | 显示全部楼层
换一个引脚也不好使吗

使用特权

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

本版积分规则