1 /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
\r
2 * File Name : spi_flash.h
\r
3 * Author : MCD Application Team
\r
6 * Description : Header for spi_flash.c file.
\r
7 ********************************************************************************
\r
8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
14 *******************************************************************************/
\r
16 /* Define to prevent recursive inclusion -------------------------------------*/
\r
17 #ifndef __SPI_FLASH_H
\r
18 #define __SPI_FLASH_H
\r
20 /* Includes ------------------------------------------------------------------*/
\r
21 #include "stm32f10x.h"
\r
22 #include "stm32f10x_spi.h"
\r
23 #include "stm32f10x_gpio.h"
\r
24 #include "stm32f10x_rcc.h"
\r
26 #define uint32_t unsigned long
\r
27 #define uint8_t unsigned char
\r
28 #define uint16_t unsigned short
\r
30 /* Exported types ------------------------------------------------------------*/
\r
31 /* Exported constants --------------------------------------------------------*/
\r
32 /* Uncomment the line corresponding to the STMicroelectronics evaluation board
\r
33 used to run the example */
\r
34 #if !defined (USE_STM3210B_EVAL) && !defined (USE_STM3210E_EVAL)
\r
35 //#define USE_STM3210B_EVAL
\r
36 #define USE_STM3210E_EVAL
\r
39 #ifdef USE_STM3210B_EVAL
\r
40 #define GPIO_CS GPIOA
\r
41 #define RCC_APB2Periph_GPIO_CS RCC_APB2Periph_GPIOA
\r
42 #define GPIO_Pin_CS GPIO_Pin_4
\r
43 #else /* USE_STM3210E_EVAL */
\r
44 #define GPIO_CS GPIOB
\r
45 #define RCC_APB2Periph_GPIO_CS RCC_APB2Periph_GPIOB
\r
46 #define GPIO_Pin_CS GPIO_Pin_2
\r
49 /* Exported macro ------------------------------------------------------------*/
\r
50 /* Select SPI FLASH: Chip Select pin low */
\r
51 #define SPI_FLASH_CS_LOW() __asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" );GPIO_ResetBits(GPIO_CS, GPIO_Pin_CS);__asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" )
\r
52 /* Deselect SPI FLASH: Chip Select pin high */
\r
53 #define SPI_FLASH_CS_HIGH() __asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" );GPIO_SetBits(GPIO_CS, GPIO_Pin_CS);__asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" );__asm volatile( "NOP" )
\r
55 /* Exported functions ------------------------------------------------------- */
\r
56 /*----- High layer function -----*/
\r
57 void SPI_FLASH_Init(void);
\r
58 void SPI_FLASH_SectorErase(uint32_t SectorAddr);
\r
59 void SPI_FLASH_BulkErase(void);
\r
60 void SPI_FLASH_PageWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite);
\r
61 void SPI_FLASH_BufferWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite);
\r
62 void SPI_FLASH_BufferRead(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead);
\r
63 uint32_t SPI_FLASH_ReadID(void);
\r
64 void SPI_FLASH_StartReadSequence(uint32_t ReadAddr);
\r
66 /*----- Low layer function -----*/
\r
67 uint8_t SPI_FLASH_ReadByte(void);
\r
68 uint8_t SPI_FLASH_SendByte(uint8_t byte);
\r
69 uint16_t SPI_FLASH_SendHalfWord(uint16_t HalfWord);
\r
70 void SPI_FLASH_WriteEnable(void);
\r
71 void SPI_FLASH_WaitForWriteEnd(void);
\r
73 #endif /* __SPI_FLASH_H */
\r
75 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
\r