STM32G0 低功耗模式选型
避免使用深度休眠(如 STANDBY 模式),优先选择STOP 1 模式(保留 SRAM 和外设寄存器),唤醒后无需重新初始化 I2C 和 RAM 数据,缩短恢复时间:
c
运行
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI); // STOP 1模式
唤醒源触发方式
若通过按键唤醒,确保按键中断触发后先恢复系统时钟(如从 MSI 切换到 HSE),再初始化 I2C,避免时钟频率不足导致 I2C 速率异常:
c
运行
void EXTI0_IRQHandler(void) {
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
SystemClock_Config(); // 恢复系统时钟
WakeUp_I2C_Init(); // 初始化I2C
}
|
|