STM32F4xx_HAL_Driver  1.8.3
stm32f4xx_hal_sdram.h
Go to the documentation of this file.
1 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32F4xx_HAL_SDRAM_H
21 #define STM32F4xx_HAL_SDRAM_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #if defined(FMC_Bank5_6)
28 
29 /* Includes ------------------------------------------------------------------*/
30 #include "stm32f4xx_ll_fmc.h"
31 
40 /* Exported typedef ----------------------------------------------------------*/
41 
49 typedef enum
50 {
59 
63 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
64 typedef struct __SDRAM_HandleTypeDef
65 #else
66 typedef struct
67 #endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
68 {
69  FMC_SDRAM_TypeDef *Instance;
75  HAL_LockTypeDef Lock;
77  DMA_HandleTypeDef *hdma;
79 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
80  void (* MspInitCallback)(struct __SDRAM_HandleTypeDef *hsdram);
81  void (* MspDeInitCallback)(struct __SDRAM_HandleTypeDef *hsdram);
82  void (* RefreshErrorCallback)(struct __SDRAM_HandleTypeDef *hsdram);
83  void (* DmaXferCpltCallback)(DMA_HandleTypeDef *hdma);
84  void (* DmaXferErrorCallback)(DMA_HandleTypeDef *hdma);
85 #endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
87 
88 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
92 typedef enum
93 {
100 
105 typedef void (*pSDRAM_DmaCallbackTypeDef)(DMA_HandleTypeDef *hdma);
106 #endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
111 /* Exported constants --------------------------------------------------------*/
112 /* Exported macro ------------------------------------------------------------*/
113 
122 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
123 #define __HAL_SDRAM_RESET_HANDLE_STATE(__HANDLE__) do { \
124  (__HANDLE__)->State = HAL_SDRAM_STATE_RESET; \
125  (__HANDLE__)->MspInitCallback = NULL; \
126  (__HANDLE__)->MspDeInitCallback = NULL; \
127  } while(0)
128 #else
129 #define __HAL_SDRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SDRAM_STATE_RESET)
130 #endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
135 /* Exported functions --------------------------------------------------------*/
136 
145 /* Initialization/de-initialization functions *********************************/
146 HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing);
147 HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram);
150 
155 
163 /* I/O operation functions ****************************************************/
164 HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer,
165  uint32_t BufferSize);
166 HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer,
167  uint32_t BufferSize);
168 HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer,
169  uint32_t BufferSize);
170 HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer,
171  uint32_t BufferSize);
172 HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
173  uint32_t BufferSize);
174 HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
175  uint32_t BufferSize);
176 
177 HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
178  uint32_t BufferSize);
179 HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
180  uint32_t BufferSize);
181 
182 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
183 /* SDRAM callback registering/unregistering */
185  pSDRAM_CallbackTypeDef pCallback);
188  pSDRAM_DmaCallbackTypeDef pCallback);
189 #endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
190 
198 /* SDRAM Control functions *****************************************************/
199 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram);
200 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram);
201 HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command,
202  uint32_t Timeout);
203 HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate);
204 HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber);
206 
214 /* SDRAM State functions ********************************************************/
232 #endif /* FMC_Bank5_6 */
233 
234 #ifdef __cplusplus
235 }
236 #endif
237 
238 #endif /* STM32F4xx_HAL_SDRAM_H */
FMC_SDRAM_TypeDef * Instance
FMC_SDRAM_InitTypeDef Init
__IO HAL_SDRAM_StateTypeDef State
ADC handle Structure definition.
SDRAM command parameters structure definition.
FMC SDRAM Configuration Structure definition.
FMC SDRAM Timing parameters structure definition.
void HAL_SDRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma)
DMA transfer complete callback.
void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram)
SDRAM MSP Init.
HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram)
Perform the SDRAM device initialization sequence.
void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram)
SDRAM Refresh error callback.
HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing)
Performs the SDRAM device initialization sequence.
void HAL_SDRAM_IRQHandler(SDRAM_HandleTypeDef *hsdram)
This function handles SDRAM refresh error interrupt request.
void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef *hsdram)
SDRAM MSP DeInit.
void HAL_SDRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma)
DMA transfer complete error callback.
HAL_StatusTypeDef HAL_SDRAM_UnRegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId)
Unregister a User SDRAM Callback SDRAM Callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize)
Reads 8-bit data buffer from the SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
Reads 32-bit data buffer from the SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize)
Reads 16-bit data buffer from the SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
Writes a Words data buffer to SDRAM memory using DMA transfer.
HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
Reads a Words data from the SDRAM memory using DMA transfer.
HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize)
Writes 8-bit data buffer to SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_RegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_CallbackTypeDef pCallback)
Register a User SDRAM Callback To be used to override the weak predefined callback.
HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
Writes 32-bit data buffer to SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_DmaCallbackTypeDef pCallback)
Register a User SDRAM Callback for DMA transfers To be used to override the weak predefined callback.
HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize)
Writes 16-bit data buffer to SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
Sends Command to the SDRAM bank.
HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram)
Enables dynamically SDRAM write protection.
HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram)
Disables dynamically SDRAM write protection.
HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber)
Sets the Number of consecutive SDRAM Memory auto Refresh commands.
uint32_t HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram)
Returns the SDRAM memory current mode.
HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate)
Programs the SDRAM Memory Refresh rate.
HAL_SDRAM_StateTypeDef HAL_SDRAM_GetState(SDRAM_HandleTypeDef *hsdram)
Returns the SDRAM state.
HAL_SDRAM_CallbackIDTypeDef
HAL SDRAM Callback ID enumeration definition.
struct __SDRAM_HandleTypeDef else typedef struct endif SDRAM_HandleTypeDef
SDRAM handle Structure definition.
HAL_SDRAM_StateTypeDef
HAL SDRAM State structure definition.
void(* pSDRAM_CallbackTypeDef)(SDRAM_HandleTypeDef *hsdram)
HAL SDRAM Callback pointer definition.
@ HAL_SDRAM_DMA_XFER_CPLT_CB_ID
@ HAL_SDRAM_REFRESH_ERR_CB_ID
@ HAL_SDRAM_MSP_INIT_CB_ID
@ HAL_SDRAM_DMA_XFER_ERR_CB_ID
@ HAL_SDRAM_MSP_DEINIT_CB_ID
@ HAL_SDRAM_STATE_ERROR
@ HAL_SDRAM_STATE_READY
@ HAL_SDRAM_STATE_WRITE_PROTECTED
@ HAL_SDRAM_STATE_RESET
@ HAL_SDRAM_STATE_PRECHARGED
@ HAL_SDRAM_STATE_BUSY
HAL_LockTypeDef
HAL Lock structures definition
Header file of FMC HAL module.
DMA handle Structure definition.