現象:使用J-Link下載代碼後,STM32L4進入STOP2模式,內核電壓1.28V依舊存在,STOP2下內核調壓器、大部分時鐘應該全關閉,以達到最低功耗。
解決思路:斷電,重新上電開機,進入STOP2模式正常。但實際上,電池供電,一般不會輕易斷電。因此通過調試,發現瞭解決方法,爲STM32L4 DEBUG寄存器配置問題。
J-Link下載後,會打開STM32L4 DEBUG寄存器裏的調試功能,也就是可以讓STM32L4 在Sleep、STOP、StandBy模式下,可以調試MCU。
開機初始化時,關閉DEBUG的調試功能,就可以解決這個問題。
void stm32_disable_dbgmcu(void)
{
HAL_DBGMCU_DisableDBGStopMode();
HAL_DBGMCU_DisableDBGSleepMode();
HAL_DBGMCU_DisableDBGStandbyMode();
}
經過實際驗證,固件使用J-Link下載後,不斷電,系統進入STOP2模式,STM32內核電壓關閉了。功耗正常。