项目场景:
STM32G0B1的STOP模式
问题描述
进入STOP模式通过中断唤醒,重新初始化外设卡死
void bsp_EnterStopMode(void)
{
__HAL_RCC_PWR_CLK_ENABLE();
vTaskSuspendAll();
LowpowerPeripheralDeInit();//关闭外设
wake_config();配置中断
HAL_SuspendTick();关闭滴答
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
HAL_ResumeTick();//恢复滴答
HAL_Init();
SystemClock_Config();
HAL_NVIC_DisableIRQ(EXTI0_1_IRQn);
LowPowerPeripheralInit();//重新初始化外设
bsp_Init();
xTaskResumeAll();
}
static void LowpowerPeripheralDeInit(void)
{
/关闭所有外设配置/
HAL_FDCAN_MspDeInit(&hfdcan2);
HAL_SPI_MspDeInit(&hspi2);
MX_DMA_DeInit();
USART5_DeInit();
USART6_DeInit();
ADC_DeInit();
LL_GPIO_SetOutputPin(LED1_GPIO_Port, LED1_Pin);
LL_GPIO_SetOutputPin(LED2_GPIO_Port, LED2_Pin);