¿Por qué Cubemx usa 0x32F2 como indicador para la configuración de RTC?

2

He creado un programa con el periférico RTC activado por cubemx. Después de analizar el código y buscar en Internet, descubrí que la razón por la que se escribe 0x32F2 en RTC_BKP_DR1 es para verificar si el RTC se configuró antes o no.

¿Por qué utiliza 0x32F2 como un indicador y no otro número?
¿Hay alguna razón?

static void MX_RTC_Init(void)
{
     RTC_TimeTypeDef sTime;
     RTC_DateTypeDef DateToUpdate;
     /**Initialize RTC Only */
     hrtc.Instance = RTC;
     hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND;
     hrtc.Init.OutPut = RTC_OUTPUTSOURCE_CALIBCLOCK; 

     if (HAL_RTC_Init(&hrtc) != HAL_OK)
     {
        _Error_Handler(__FILE__, __LINE__);
     }

     /**Initialize RTC and set the Time and Date*/
     if(HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR1) != 0x32F2){
         sTime.Hours = 1;
         sTime.Minutes = 0;
         sTime.Seconds = 0;

         if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK)
         {
            _Error_Handler(__FILE__, __LINE__);
         }

         DateToUpdate.WeekDay = RTC_WEEKDAY_MONDAY;
         DateToUpdate.Month = RTC_MONTH_JANUARY;
         DateToUpdate.Date = 1;
         DateToUpdate.Year = 15;

         if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BIN) != HAL_OK)
         {
            _Error_Handler(__FILE__, __LINE__);
         }

         HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,0x32F2);
     }
}
    
pregunta phoenix2000

2 respuestas

2

Los registros de copia de seguridad son para datos de aplicaciones de usuario. Los bits en estos registros no configuran ningún tipo de funcionalidad. Por lo tanto, el valor en cuestión es de hecho solo una elección aleatoria.

Estos registros son especiales porque:

  

Los registros BKP_DRx no se restablecen mediante un reinicio del sistema o un reinicio de energía   o cuando el dispositivo se despierta del modo de espera. Ellos son restablecidos por un   Restablecimiento del dominio de respaldo o mediante un evento de pin TAMPER (si el pin TAMPER   la función está activada).

Y parece que los escritores de STM32 HAL dedicaron uno de estos registros al RTC y lo usan como un simple isConfiguredFlag .

    
respondido por el Bence Kaulics
1

No creo que haya ninguna razón, solo la elección de los programadores para una constante. Puede usar cualquier constante que no esté activada por defecto (probablemente 0xFFFFFFFF).

    
respondido por el justing

Lea otras preguntas en las etiquetas