/**
  @page PWR_CurrentConsumption PWR Current Consumption example
  
  @verbatim
  ******************** (C) COPYRIGHT 2015 STMicroelectronics *******************
  * @file    PWR/PWR_CurrentConsumption/readme.txt 
  * @author  MCD Application Team
  * @version V1.1.3
  * @date    15-December-2021
  * @brief   Description of the PWR Current Consumption 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 shows how to configure the STM32F30x system to measure different
Low Power modes current consumption. The Low Power modes are:
  - Sleep Mode
  - STOP mode with RTC
  - STANDBY mode without RTC 
  - STANDBY mode with RTC

To run this example, user has to follow these steps:
 1. Select the Low power modes to be measured by uncommenting the corresponding
    line inside the stm32f30x_lp_modes.h file.
    @code
       /* #define SLEEP_MODE */
       /* #define STOP_MODE */
       /* #define STANDBY_MODE */
       #define STANDBY_RTC_MODE
    @endcode       

 2. Use an external amperemeter to measure the IDD current. 

 3. This example can not be used in DEBUG mode as the JTAG IOs are disabled to
    reduce power consumption.

@note When using the small packages (48 and 64 pin packages), the GPIO pins which 
      are not present on these packages, must not be configured in analog mode.

Here below a detailed description of the example code:

 1. After reset, the program waits for KEY button connected to the PE.06 to be 
    pressed to enter the selected low power mode.
     - In SLEEP_MODE, press again the KEY button to exit the low power mode.
     - In STOP_MODE and STANDBY_RTC_MODE, the wakeup from low power mode is automatically 
       generated by the RTC (after ~5s).
     - In STANDBY_MODE test, press again SEL button to exit the low power mode.
     
 2. Low power modes description:

    - Sleep Mode
    ============  
            - System Running at PLL (72MHz)
            - Flash 2 wait state
            - Code running from Internal FLASH
            - All peripherals disabled.
            - Wakeup using EXTI Line 6 (PE.06, connected to KEY push-button on STM32F303C_eval)

    - STOP Mode
    ===========
            - RTC Clocked by LSI
            - Regulator in LP mode
            - HSI, HSE OFF and LSI if not used as RTC Clock source
            - No IWDG
            - FLASH in deep power down mode
            - Automatic Wakeup using RTC clocked by LSI 

    - STANDBY Mode
    ==============
            - RTC OFF
            - IWDG and LSI OFF
            - Wakeup using WakeUp Pin2 (PC.13, connected to SEL push-button on STM32F303C_eval)
                        
    - STANDBY Mode with RTC clocked by LSI 
    ==========================================
            - RTC Clocked by LSI
            - IWDG OFF
            - Automatic Wakeup using RTC

@par Directory contents 

  - PWR/PWR_CurrentConsumption/stm32f30x_conf.h     Library Configuration file
  - PWR/PWR_CurrentConsumption/stm32f30x_it.c       Interrupt handlers
  - PWR/PWR_CurrentConsumption/stm32f30x_it.h       Header for stm32f30x_it.c
  - PWR/PWR_CurrentConsumption/main.c               Main program
  - PWR/PWR_CurrentConsumption/main.h               Header for main.c
  - PWR/PWR_CurrentConsumption/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)
    and can be easily tailored to any other supported device and development board.

  - STM32303C-EVAL Set-up
    - Remove JP12 and connect an amperemeter to measure the STM32F30x consumption 
      on the STM32303C-EVAL board.
      
@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
     - stm32f30x_lp_modes.c 
     - Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c
 - Rebuild all files and load your image into target memory
 - Run the example
    

 */
