STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
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
24extern "C" {
25#endif
26
27#if defined(FMC_Bank5_6)
28
29/* Includes ------------------------------------------------------------------*/
30#include "stm32f4xx_ll_fmc.h"
31
40/* Exported typedef ----------------------------------------------------------*/
41
49typedef enum
50{
51 HAL_SDRAM_STATE_RESET = 0x00U,
52 HAL_SDRAM_STATE_READY = 0x01U,
53 HAL_SDRAM_STATE_BUSY = 0x02U,
54 HAL_SDRAM_STATE_ERROR = 0x03U,
55 HAL_SDRAM_STATE_WRITE_PROTECTED = 0x04U,
56 HAL_SDRAM_STATE_PRECHARGED = 0x05U
58} HAL_SDRAM_StateTypeDef;
59
63#if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
64typedef struct __SDRAM_HandleTypeDef
65#else
66typedef struct
67#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
68{
69 FMC_SDRAM_TypeDef *Instance;
71 FMC_SDRAM_InitTypeDef Init;
73 __IO HAL_SDRAM_StateTypeDef State;
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 */
86} SDRAM_HandleTypeDef;
87
88#if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
92typedef enum
93{
94 HAL_SDRAM_MSP_INIT_CB_ID = 0x00U,
95 HAL_SDRAM_MSP_DEINIT_CB_ID = 0x01U,
96 HAL_SDRAM_REFRESH_ERR_CB_ID = 0x02U,
97 HAL_SDRAM_DMA_XFER_CPLT_CB_ID = 0x03U,
98 HAL_SDRAM_DMA_XFER_ERR_CB_ID = 0x04U
99} HAL_SDRAM_CallbackIDTypeDef;
100
104typedef void (*pSDRAM_CallbackTypeDef)(SDRAM_HandleTypeDef *hsdram);
105typedef 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 *********************************/
146HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing);
147HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram);
148void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram);
149void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef *hsdram);
150
151void HAL_SDRAM_IRQHandler(SDRAM_HandleTypeDef *hsdram);
152void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram);
153void HAL_SDRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
154void HAL_SDRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
155
163/* I/O operation functions ****************************************************/
164HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer,
165 uint32_t BufferSize);
166HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer,
167 uint32_t BufferSize);
168HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer,
169 uint32_t BufferSize);
170HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer,
171 uint32_t BufferSize);
172HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
173 uint32_t BufferSize);
174HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
175 uint32_t BufferSize);
176
177HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
178 uint32_t BufferSize);
179HAL_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 */
184HAL_StatusTypeDef HAL_SDRAM_RegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
185 pSDRAM_CallbackTypeDef pCallback);
186HAL_StatusTypeDef HAL_SDRAM_UnRegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId);
187HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
188 pSDRAM_DmaCallbackTypeDef pCallback);
189#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
190
198/* SDRAM Control functions *****************************************************/
199HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram);
200HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram);
201HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command,
202 uint32_t Timeout);
203HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate);
204HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber);
205uint32_t HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram);
206
214/* SDRAM State functions ********************************************************/
215HAL_SDRAM_StateTypeDef HAL_SDRAM_GetState(SDRAM_HandleTypeDef *hsdram);
232#endif /* FMC_Bank5_6 */
233
234#ifdef __cplusplus
235}
236#endif
237
238#endif /* STM32F4xx_HAL_SDRAM_H */
HAL_StatusTypeDef
HAL Status structures definition
HAL_LockTypeDef
HAL Lock structures definition
DMA handle Structure definition.