2020-09-15 05:42 AM
I tried to set a STM32F469 controller into standby mode and wake it up periodically via the RTC on a custom board and on a STM32F469I-Discovery board. I had the problem that the controller only went into standby once, on the following runs it woke up again immediately after entering standby. Some other forum participants had a similar problem, but the solution for my problem was only found in the Errata-Sheet for the STM32F469xx / STM23F479xx controllers:
"the wakeup flag WUPF in the PWR_CSR register will be kept pending even if the wakeup flag is cleared by setting the CWUPF bit in the PWR_CR register. This prevents the system from entering standby mode."
As a workaround it is recommended to check if the SBF bit in PWR_CSR is set after the wakeup from standby, clear it (by setting the CSBF bit in PWR_CR) and then perform a system reset, e.g. when using HAL:
if(__HAL_PWR_GET_FLAG(PWR_FLAG_SB) != RESET) {
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
NVIC_SystemReset();
}
Maybe this will help someone who has the same problem or someone has a different solution for this problem?