Quiero usar el calendario interno de RTC con el reloj interno (LSI).
Creo que por eso no funciona. Según el AN4759 Uso del reloj de tiempo real (RTC) del hardware en modos de baja potencia con microcontroladores STM32 , página 36/51 podemos leer la siguiente declaración:
Usando el modo de reducción de potencia correcto
Dependiendo de las restricciones de la aplicación, como el consumo de corriente máximo o promedio, la frecuencia de activación, o alternativamente el tiempo máximo de activación, se pueden usar varios modos de bajo consumo.
El periférico RTC puede estar activo en los siguientes modos de bajo consumo :
- modo de suspensión
- Modo de funcionamiento de baja potencia
- Modo de suspensión de bajo consumo
- Modo de parada si el reloj RTC es proporcionado por LSE o LSI (a)
- Modo de espera si el reloj RTC es proporcionado por LSE o LSI
- Modo de apagado si el reloj RTC es proporcionado por LSE (b)
Dado que está utilizando el LSI, el modo de menor potencia posible para su periférico RTC es el modo de espera. El modo de apagado se alcanza cuando apaga su sistema (incluso si tiene VBAT conectado), que es su caso.
El hecho de que VBAT esté conectado le permite mantener el valor de RTC antes de apagar la fuente de alimentación principal, pero aquí, el hecho de que esté utilizando el LSI apagado del periférico de RTC, es por eso que su valor no cambia.
Si desea lograr lo que desea (con el RTC funcionando incluso cuando la fuente de alimentación principal está apagada, PERO con VBAT conectado), debe usar el LSE.