按下按钮将 Stm32F4 从睡眠模式唤醒

Waking up Stm32F4 from sleep mode on button press

我正在使用 STM32F4 将我的电路板置于睡眠模式。我想在按下按钮时醒来。我正在使用以下代码来实现这个

void SleepMode(void)
{
  GPIO_InitTypeDef GPIO_InitStruct;
  MX_GPIO_Deinit();
  __HAL_RCC_GPIOC_CLK_ENABLE();
  GPIO_InitStruct.Pin = B1_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
  HAL_UART_DeInit(&huart4);
  HAL_SuspendTick();
  __HAL_RCC_PWR_CLK_ENABLE();
  HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI);
}

开发板进入睡眠模式,但按下按钮时没有唤醒。我的代码哪里出错了?

您是否在 NVIC 中配置了 EXTI 线以在按下按钮时启动 EXTI ISR?您可能还需要在设备唤醒时通过调用 HAL_ResumeTick()

恢复 SysTick