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

时间:2019-05-27 10:51:17

标签: stm32f4

我正在使使用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);
}

板子进入睡眠模式,但是当我按按钮时不会唤醒。我的代码在哪里出错?

1 个答案:

答案 0 :(得分:0)

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

恢复SysTick。