/**
  @page PWR_CurrentConsumption PWR Current Consumption example
  
  @verbatim
  ******************** (C) COPYRIGHT 2014 STMicroelectronics *******************
  * @file    PWR_CurrentConsumption/readme.txt 
  * @author  MCD Application Team
  * @version V1.2.0
  * @date    11-April-2014
  * @brief   Description of the PWR Current Consumption example.
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
  *
  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  * You may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  *
  *        http://www.st.com/software_license_agreement_liberty_v2
  *
  * Unless required by applicable law or agreed to in writing, software 
  * distributed under the License is distributed on an "AS IS" BASIS, 
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ******************************************************************************
  @endverbatim

@par Example Description 

This example shows how to configure the STM32 system to measure different Low Power
 modes current consumption. The Low Power modes are:
  - SLEEP mode
  - STOP mode with 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 stm32f10x_lp_modes.h file :
       
    @code
       #define SLEEP_MODE
       /* #define STOP_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 - For STM32F10x, in SLEEP_MODE and STOP_MODE there is a delay of ~300ms 
        between the press button and the enter to low power mode. The real time
        to go in low power mode is ~87ms and the additional delay is coming from
        the enable of LSE and the RTC configuration. 
      - For more details about the typical current consumption in the different 
        low power modes, please refer to the electrical characteristics of your 
        device datasheet. 

Here below a detailed description of the example code:

 1. After reset, the program waits for USER button connected to the PC.13 to be 
    pressed to enter the selected low power mode.
     - In SLEEP_MODE : initially LED2 is Off, system is in sleep mode, to exit
       press again the USER button (LED2 will toggle in infinity loop).
     - In STOP_MODE : initially LED2 is Off, system is in low power mode,
       the wakeup is automatically generated by the RTC (after ~5s)
       then LED2 will toggle in infinity loop.
     - In STANDBY_RTC_MODE: The wakeup is automatically generated by the RTC (after ~5s)
     
 2. Low power modes description:

    - Sleep Mode
    ============  
            - System Running at PLL (72MHz)
            - Flash 1 wait state
            - Code running from Internal FLASH
            - All peripherals disabled.
            - Wakeup using EXTI Line 13 (PC.13, connected to USER button on STM32NUCLEO)

    - STOP Mode
    ===========
            - RTC Clocked by LSI
            - Regulator in LP mode
            - HSI, HSE OFF 
            - No IWDG
            - FLASH in deep power down mode
            - Automatic Wakeup using RTC clocked by LSI 
                        
    - STANDBY Mode with RTC clocked by LSI 
    ==========================================
            - RTC Clocked by LSI
            - IWDG OFF
            - Automatic Wakeup using RTC

  
@par Hardware and Software environment

  - This example runs on STM32F10x Devices.
  
  - This example has been tested with STMicroelectronics STM32NUCLEO kit(MB1136) rev C
    and can be easily tailored to any other supported device and development board.

  - STM32NUCLEO Set-up
    - Remove JP6 labeled Idd and connect an amperemeter to measure the STM32 
      consumption on the STM32NUCLEO board.
      
@par How to use it ? 

In order to make the program work, you must do the following :

 + EWARM
    - Open the PWR_CurrentConsumption.eww workspace 
    - Rebuild all files: Project->Rebuild all
    - Load project image: Project->Debug
    - Run program: Debug->Go(F5)

 + MDK-ARM
    - Open the PWR_CurrentConsumption.uvproj project
    - Rebuild all files: Project->Rebuild all target files
    - Load project image: Debug->Start/Stop Debug Session
    - Run program: Debug->Run (F5)    

 + TrueSTUDIO:
    - Open the TrueSTUDIO toolchain.
    - Click on File->Switch Workspace->Other and browse to TrueSTUDIO workspace directory.
    - Click on File->Import, select General->'Existing Projects into Workspace' and then click "Next". 
    - Browse to the TrueSTUDIO workspace directory, select the project PWR_CurrentConsumption.
    - Rebuild all project files: Select the project in the "Project explorer" 
      window then click on Project->build project menu.
    - Run program: Run->Debug (F11)
      
 * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
 */
