/**
  @page OPAMP calibration example
  @verbatim
  ******************** (C) COPYRIGHT 2016 STMicroelectronics *******************
  * @file    OPAMP/OPAMP_CALIBRATION/readme.txt 
  * @author  MCD Application Team
  * @brief   Description of the OPAMP calibration example.
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2016 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
  *
  ******************************************************************************
  @endverbatim

@par Example Description 

How to calibrate the OPAMP peripheral.

On OPAMP1, this example shows how to 
- Get factory calibration (trimming) settings.
- Enable/disable OPAMP
- Calibrate OPAMP peripheral before and after use of OPAMP.
  Hence changes can be monitored (versus factory settings or in case of 
  temperature impact for instance).

- Connect an oscilloscope to DAC_CHANNEL_2 output (pin PA.05) to display the sine wave signal
  generated by the DAC. 
- Connect an oscilloscope to OPAMP1 output (pin PA.02) 
  -> to display the OPAMP buffered sine wave signal.
  -> Monitor enabling/disabling of OPAMP.
- OPAMP1 non-inverting input is internally connected to DAC_CHANNEL_2 output (same (pin PA.05),
  therefore no external connection is needed.
- Push the Key Push button (connected to PE.06 pin) to switch from one step to the 
next one.
- Key push button steps are:
  -> 1st Push: 
     + Factory trimming retrieved 
     + User trimming set according to self calibration (1st run)
     + Factory trimming and user trimming are compared
       - If The LED blinks rapidly: Calibrated trimming are different from Factory Trimming
       - ................. slowly : Calibrated trimming same as Factory Trimming 
  -> 2nd Push: 
     + OPAMP start
     + Use of previously calibrated user Trimming values
  -> 3rd Push: 
     + change OPAMP setting on the fly (dummy change, without application purpose in this example: change non-inverting input source)
  -> 4th Push: 
     + OPAMP stopped    
  -> 5th Push: 
     + Self calibration (2nd run)
     + results compare to 1st run.
       - If The LED blinks rapidly: New calibrated trimming are different from ones calibrated before run
       - ................. slowly : New calibrated trimming are same as ones calibrated before run 
  -> 6th Push: end of test

@par Directory contents 

  - OPAMP/OPAMP_CALIBRATION/Inc/stm32f3xx_hal_conf.h    HAL configuration file
  - OPAMP/OPAMP_CALIBRATION/Inc/stm32f3xx_it.h          DMA interrupt handlers header file
  - OPAMP/OPAMP_CALIBRATION/Inc/main.h                        Header for main.c module  
  - OPAMP/OPAMP_CALIBRATION/Src/stm32f3xx_it.c          DMA interrupt handlers
  - OPAMP/OPAMP_CALIBRATION/Src/main.c                        Main program
  - OPAMP/OPAMP_CALIBRATION/Src/stm32f3xx_hal_msp.c     HAL MSP file
  - OPAMP/OPAMP_CALIBRATION/Src/system_stm32f3xx.c      STM32F3xx system source file

@par Hardware and Software environment  
  
  - This example runs on STM32F303xC devices.
    
  - This example has been tested with STM32303C-EVAL RevC board and can be
    easily tailored to any other supported device and development board.

  - STM32303C-EVAL RevC Set-up
    - Connect an oscilloscope to pin PA.05 to display DAC_CHANNEL_2 output waveform.
    - Connect an oscilloscope to pin PA.02 to display OPAMP1 output waveform.

@par How to use it ? 

In order to make the program work, you must do the following :
 - Open your preferred toolchain 
 - Rebuild all files and load your image into target memory
 - Run the example
  
 * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
 */

