【发布时间】:2021-09-27 17:37:43
【问题描述】:
我是stm32的新手,我尝试使用stm32F407VG的用户按钮实现中断。
我在中断函数中添加了HAL_Delay()。
当按下按钮时,中断服务程序开始执行,但它永远不会返回到main() 函数。
这是负责中断的代码部分:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin==GPIO_PIN_0)
{
if(prev_val==false)
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14, 1);
prev_val=true;
}
else
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14, 0);
prev_val = false;
}
HAL_Delay(1000);
}
}
【问题讨论】:
-
您是否在 main 或 init 中调用了
HAL_Init();? -
在
main().
标签: stm32 interrupt-handling stm32f4discovery