按下按钮将 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
我正在使用 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()