Пробуждение Stm32F4 из спящего режима при нажатии кнопки - PullRequest
1 голос
/ 27 мая 2019

Я перевожу свою доску, используя 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 голосов
/ 29 мая 2019

Вы настроили линию EXTI в NVIC для запуска EXTI ISR при нажатии кнопки? Вам также может понадобиться возобновить SysTick, когда устройство проснется, позвонив по номеру HAL_ResumeTick()

...