STM32F4中断

STM32F4 interrupt

我正在尝试在 STM32F401RE 中执行非常简单的中断代码,我按下按钮,LED2 应该根据按钮触发的外部中断打开。

我在 nucleo 板 F401 中使用用户按钮(蓝色按钮),根据板数据表引出线对应于 PC13。 我尝试了不同的选项,但 LED2 仍然关闭,这是我使用的代码:

void Interrupt_config(void)
{
    RCC->APB2ENR |=(1<<14);  
    SYSCFG->EXTICR[4] |=(1<<5);    
    EXTI->IMR |=(1<<13);  
    EXTI->FTSR |=(1<<13); 
    EXTI->PR =(1<<13);  
    NVIC_SetPriority(EXTI4_IRQn,0);
    NVIC_EnableIRQ(EXTI4_IRQn);
}
int main(void)
{
 sysconfig();
 Interrupt_config();    
 while(1)
 {
    if(flag)
     {
      GPIOA->ODR |= (1<<5);
     }
 }

 }

我使用了轮询方法(无中断),当仅使用 LED_initialize() 按下按钮时 LED2 亮起; Button_init();

尚未检查您的 IRQ 设置代码,但您需要的 PC13 处理程序是 EXTI15_10_IRQHandler

编辑:

另一个问题:EXTICR是4个字长。这是不正确的:SYSCFG->EXTICR[4] |=(1<<5);.