/**
  @page RTC_Calendar RTC Hardware Calendar Description
  
  @verbatim
  ******************** (C) COPYRIGHT 2015 STMicroelectronics *******************
  * @file    RTC/RTC_Calendar/readme.txt 
  * @author  MCD Application Team
  * @version V1.1.3
  * @date    15-December-2021
  * @brief   Description of the RTC Hardware Calendar example.
  ******************************************************************************
  *
  * Copyright (c) 2015 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
   @endverbatim

@par Example Description 

This example demonstrates and explains how to setup the RTC peripheral, in 
terms of prescaler and interrupts, to be used to keep time and to generate 
alarm interrupt. 

One from the following clock can be used as RTC clock source (uncomment the
corresponding define in main.c): 
  - LSE oscillator clock usually delivered by a 32.768 kHz quartz.
  - LSI oscillator clock

A key value is written in backup data register 0 to indicate if the RTC is already
configured.

The program behaves as follows:

1. After startup the user is asked to set the time and alarm (entered on HyperTerminal).

2. When an External Reset occurs the BKP domain is not reset and the RTC configuration
   is not lost.

3. When power on reset occurs:
    - the BKP domain is reset and the RTC configuration is lost (JP16 must be in pos 1-2).

4. When an RTC Alarm A event occurs the RTC Alarm interrupt is generated and the
   LED1 is on.
   
The example uses HyperTerminal to configure the RTC clock and display the current time:
 - When SEL button is pressed, a menu is displayed to configure the RTC Time and 
   Alarm A registers.
 - When Key button is pressed, the current time is displayed.
 - When UP button is pressed, the current alarm A is displayed. 

LED2 is turned ON when the RTC configuration is done correctly.
 
The EVAL_COM1 is configured as follow:
    - BaudRate = 115200 baud  
    - Word Length = 8 Bits (7 data bit + 1 parity bit)
    - One Stop Bit
    - No parity
    - Hardware flow control disabled (RTS and CTS signals)
    - Receive and transmit enabled

@par Directory contents 

  - RTC/RTC_Calendar/stm32f30x_conf.h    Library Configuration file
  - RTC/RTC_Calendar/stm32f30x_it.c      Interrupt handlers
  - RTC/RTC_Calendar/stm32f30x_it.h      Interrupt handlers header file
  - RTC/RTC_Calendar/main.c              Main program
  - RTC/RTC_Calendar/main.h              Main program header file
  - RTC/RTC_Calendar/system_stm32f30x.c  STM32F30x system source file
  
@note The "system_stm32f30x.c" is generated by an automatic clock configuration 
      system and can be easily customized to your own configuration. 
      To select different clock setup, use the "STM32F30x_Clock_Configuration_V1.0.0.xls" 
      provided with the AN4152 package available on <a href="http://www.st.com/internet/mcu/family/141.jsp">  ST Microcontrollers </a>
        
@par Hardware and Software environment

  - This example runs on STM32F303xC and STM32F303xE Devices.
  
  - This example has been tested with STMicroelectronics STM32303C-EVAL (STM32F30x)
    evaluation board and can be easily tailored to any other supported device 
    and development board.
  
  - STM32303C-EVAL Set-up
    - Connect a null-modem female/female RS232 cable between the DB9 connector 
      CN8 and PC serial port.
    - Make sure that JP13 is in position 5<->6(RS232)

@par How to use it ? 

In order to make the program work, you must do the following :
 - Copy all source files from this example folder to the template folder under
   Projects\STM32F30x_StdPeriph_Templates
 - Open your preferred toolchain
 - Add the following file to the project source list
   - Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c 
 - Rebuild all files and load your image into target memory
 - Run the example
 
@note Known Limitations
      This example retargets the C library printf() function to the Hyperterminal
      (C library I/O redirected).
      TrueSTUDIO Lite version does not support I/O redirection, and instead
      have do-nothing stubs compiled into the C runtime library. 
      To use printf() with TrueSTUDIO Professional version, just include the
      TrueSTUDIO Minimal System calls file "syscalls.c" provided within the toolchain.
      It contains additional code to support printf() redirection. 
 

 */
