/**
  @page SPI_EEPROM  How to use the SPI to drive an EEPROM memory
  
  @verbatim
  ******************** (C) COPYRIGHT 2015 STMicroelectronics *******************
  * @file    SPI/SPI_EEPROM/readme.txt 
  * @author  MCD Application Team
  * @version V1.1.3
  * @date    15-December-2021
  * @brief   Description of the SPI and M95M01 EEPROM communication 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 firmware provides a basic example of how to use the SPI firmware library and
an associate SPI EEPROM driver to communicate with an SPI EEPROM device (here the
example is interfacing with M95M01 EEPROM)

SPI peripheral is configured in Master during write and read operations from SPI 
EEPROM. 

The peripheral used is SPI2 but can be configured by modifying the defines values
in stm32303c_eval.h file.

First, the content of Tx1Buffer is written to the sEE_WRITE_ADDRESS1 and the
written data are read. The written and the read buffers data are then compared.
Following the read operation, the program waits that the EEPROM reverts to its 
Standby state. A second write operation is, then, performed and this time, Tx2Buffer
is written to sEE_WRITE_ADDRESS2, which represents the address just after the last 
written one in the first write. After completion of the second write operation, the 
written data are read. The contents of the written and the read buffers are compared.

This example provides the possibility to use the STM32303C-EVAL LCD screen for
messages display (transfer status: Ongoing, PASSED, FAILED).
To enable this option uncomment the define ENABLE_LCD_MSG_DISPLAY in the main.c
file.
 
@par Directory contents 

  - SPI/SPI_EEPROM/stm32f30x_conf.h    Library Configuration file
  - SPI/SPI_EEPROM/stm32f30x_it.c      Interrupt handlers
  - SPI/SPI_EEPROM/stm32f30x_it.h      Interrupt handlers header file
  - SPI/SPI_EEPROM/main.c              Main program
  - SPI/SPI_EEPROM/main.h              Main program header file   
  - SPI/SPI_EEPROM/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 STM32F30x 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
    - None.

@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 the project source list
    - Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c
    - Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_lcd.c
    - Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_ee.c
 - Rebuild all files and load your image into target memory
 - Run the example
    

 */
