我正在将使用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);
}当我按下按钮时,控制板将进入睡眠模式,但不会唤醒。我在代码中哪里出错了?
发布于 2019-05-30 03:43:07
您是否已将NVIC中的EXTI线路配置为在按下按钮时启动EXTI ISR?当设备通过调用HAL_ResumeTick()唤醒时,您可能还需要恢复SysTick
https://stackoverflow.com/questions/56324646
复制相似问题