STM CMSIS
stm32f4xx_hal_sdram.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F4xx_HAL_SDRAM_H
40 #define __STM32F4xx_HAL_SDRAM_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
47  defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
48 
49 /* Includes ------------------------------------------------------------------*/
50 #include "stm32f4xx_ll_fmc.h"
51 
60 /* Exported typedef ----------------------------------------------------------*/
68 typedef enum
69 {
70  HAL_SDRAM_STATE_RESET = 0x00U,
71  HAL_SDRAM_STATE_READY = 0x01U,
72  HAL_SDRAM_STATE_BUSY = 0x02U,
73  HAL_SDRAM_STATE_ERROR = 0x03U,
74  HAL_SDRAM_STATE_WRITE_PROTECTED = 0x04U,
75  HAL_SDRAM_STATE_PRECHARGED = 0x05U
77 }HAL_SDRAM_StateTypeDef;
78 
82 typedef struct
83 {
84  FMC_SDRAM_TypeDef *Instance;
86  FMC_SDRAM_InitTypeDef Init;
88  __IO HAL_SDRAM_StateTypeDef State;
90  HAL_LockTypeDef Lock;
92  DMA_HandleTypeDef *hdma;
94 }SDRAM_HandleTypeDef;
99 /* Exported constants --------------------------------------------------------*/
100 /* Exported macro ------------------------------------------------------------*/
109 #define __HAL_SDRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SDRAM_STATE_RESET)
110 
114 /* Exported functions --------------------------------------------------------*/
123 /* Initialization/de-initialization functions *********************************/
124 HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing);
125 HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram);
126 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram);
127 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef *hsdram);
128 
129 void HAL_SDRAM_IRQHandler(SDRAM_HandleTypeDef *hsdram);
130 void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram);
131 void HAL_SDRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
132 void HAL_SDRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
140 /* I/O operation functions ****************************************************/
141 HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize);
142 HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize);
143 HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize);
144 HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize);
145 HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
146 HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
147 
148 HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t * pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
149 HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
157 /* SDRAM Control functions *****************************************************/
158 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram);
159 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram);
160 HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout);
161 HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate);
162 HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber);
163 uint32_t HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram);
171 /* SDRAM State functions ********************************************************/
172 HAL_SDRAM_StateTypeDef HAL_SDRAM_GetState(SDRAM_HandleTypeDef *hsdram);
185 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
186 
191 #ifdef __cplusplus
192 }
193 #endif
194 
195 #endif /* __STM32F4xx_HAL_SDRAM_H */
196 
197 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32f4xx_hal_def.h:57
#define __IO
Definition: core_cm0.h:213
HAL_LockTypeDef
HAL Lock structures definition.
Definition: stm32f4xx_hal_def.h:68
Header file of FMC HAL module.
DMA handle Structure definition.
Definition: stm32f4xx_hal_dma.h:157