text: /**
    ******************************************************************************
    * File Name          : RTC.c
    * Description        : This file provides code for the configuration
    *                      of the RTC instances.
    ******************************************************************************
    * @attention
    *
    * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
    * All rights reserved.</center></h2>
    *
    * This software component is licensed by ST under BSD 3-Clause license,
    * the "License"; You may not use this file except in compliance with the
    * License. You may obtain a copy of the License at:
    *                        opensource.org/licenses/BSD-3-Clause
    *
    ******************************************************************************
    */
  
  /* Includes ------------------------------------------------------------------*/
  #include "rtc.h"
  
  /* USER CODE BEGIN 0 */
  extern RTC_DateTypeDef RtcDate;
  extern RTC_TimeTypeDef RtcTime;
  /* USER CODE END 0 */
  
  RTC_HandleTypeDef hrtc;
  
  /* RTC init function */
  void MX_RTC_Init(void)
  {
    RTC_TimeTypeDef sTime = {0};
    RTC_DateTypeDef sDate = {0};
  
    /** Initialize RTC Only 
    */
    hrtc.Instance = RTC;
    hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
    hrtc.Init.AsynchPrediv = 127;
    hrtc.Init.SynchPrediv = 255;
    hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
    hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
    hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
    if (HAL_RTC_Init(&hrtc) != HAL_OK)
    {
      Error_Handler();
    }
  
    /* USER CODE BEGIN Check_RTC_BKUP */
    HAL_RTC_GetTime(&hrtc, &RtcTime, RTC_FORMAT_BIN);
    HAL_RTC_GetDate(&hrtc, &RtcDate, RTC_FORMAT_BIN);
    return;
    /* USER CODE END Check_RTC_BKUP */
  
    /** Initialize RTC and set the Time and Date 
    */
    sTime.Hours = 19;
    sTime.Minutes = 50;
    sTime.Seconds = 0;
    sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
    sTime.StoreOperation = RTC_STOREOPERATION_RESET;
    if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK)
    {
      Error_Handler();
    }
    sDate.WeekDay = RTC_WEEKDAY_SATURDAY;
    sDate.Month = RTC_MONTH_MARCH;
    sDate.Date = 7;
    sDate.Year = 20;
  
    if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK)
    {
      Error_Handler();
    }
  
  }
  
  void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
  {
  
    if(rtcHandle->Instance==RTC)
    {
    /* USER CODE BEGIN RTC_MspInit 0 */
  
    /* USER CODE END RTC_MspInit 0 */
      /* RTC clock enable */
      __HAL_RCC_RTC_ENABLE();
    /* USER CODE BEGIN RTC_MspInit 1 */
  
    /* USER CODE END RTC_MspInit 1 */
    }
  }
  
  void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)
  {
  
    if(rtcHandle->Instance==RTC)
    {
    /* USER CODE BEGIN RTC_MspDeInit 0 */
  
    /* USER CODE END RTC_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_RTC_DISABLE();
    /* USER CODE BEGIN RTC_MspDeInit 1 */
  
    /* USER CODE END RTC_MspDeInit 1 */
    }
  } 
  
  /* USER CODE BEGIN 1 */
  
  /* USER CODE END 1 */
  
  /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  