【问题标题】:STM32F4 interruptSTM32F4中断
【发布时间】:2022-08-11 08:37:25
【问题描述】:

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

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

void Interrupt_config(void)
{
    RCC->APB2ENR |=(1<<14);  
    SYSCFG->EXTICR[4] |=(1<<5);    
    EXTI->IMR |=(1<<13);  

}
int main(void)
{
 sysconfig();
 Interrupt_config();    
 while(1)
 {
    if(flag)
     {
      GPIOA->ODR |= (1<<5);
     }
 }

 }

我使用了轮询方法(无中断),当仅使用 LED_initialize() 按下按钮时 LED2 会正常亮起;按钮初始化();

  • 请正确缩进您的源代码,它几乎不可读。

标签: c stm32 keil


【解决方案1】:

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

编辑:

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

【讨论】:

  • 非常感谢,这有效……我对数据表有点困惑
猜你喜欢
  • 1970-01-01
  • 2019-01-13
  • 2021-05-02
  • 2019-04-25
  • 2017-02-17
  • 2017-05-07
  • 2016-04-18
  • 2016-03-03
  • 1970-01-01
相关资源
最近更新 更多