File indexing completed on 2025-05-11 08:23:36
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_SDRAM_H
0021 #define STM32H7xx_HAL_SDRAM_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028
0029 #include "stm32h7xx_ll_fmc.h"
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 typedef enum
0050 {
0051 HAL_SDRAM_STATE_RESET = 0x00U,
0052 HAL_SDRAM_STATE_READY = 0x01U,
0053 HAL_SDRAM_STATE_BUSY = 0x02U,
0054 HAL_SDRAM_STATE_ERROR = 0x03U,
0055 HAL_SDRAM_STATE_WRITE_PROTECTED = 0x04U,
0056 HAL_SDRAM_STATE_PRECHARGED = 0x05U
0057
0058 } HAL_SDRAM_StateTypeDef;
0059
0060
0061
0062
0063 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
0064 typedef struct __SDRAM_HandleTypeDef
0065 #else
0066 typedef struct
0067 #endif
0068 {
0069 FMC_SDRAM_TypeDef *Instance;
0070
0071 FMC_SDRAM_InitTypeDef Init;
0072
0073 __IO HAL_SDRAM_StateTypeDef State;
0074
0075 HAL_LockTypeDef Lock;
0076
0077 MDMA_HandleTypeDef *hmdma;
0078
0079 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
0080 void (* MspInitCallback)(struct __SDRAM_HandleTypeDef *hsdram);
0081 void (* MspDeInitCallback)(struct __SDRAM_HandleTypeDef *hsdram);
0082 void (* RefreshErrorCallback)(struct __SDRAM_HandleTypeDef *hsdram);
0083 void (* DmaXferCpltCallback)(MDMA_HandleTypeDef *hmdma);
0084 void (* DmaXferErrorCallback)(MDMA_HandleTypeDef *hmdma);
0085 #endif
0086 } SDRAM_HandleTypeDef;
0087
0088 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
0089
0090
0091
0092 typedef enum
0093 {
0094 HAL_SDRAM_MSP_INIT_CB_ID = 0x00U,
0095 HAL_SDRAM_MSP_DEINIT_CB_ID = 0x01U,
0096 HAL_SDRAM_REFRESH_ERR_CB_ID = 0x02U,
0097 HAL_SDRAM_DMA_XFER_CPLT_CB_ID = 0x03U,
0098 HAL_SDRAM_DMA_XFER_ERR_CB_ID = 0x04U
0099 } HAL_SDRAM_CallbackIDTypeDef;
0100
0101
0102
0103
0104 typedef void (*pSDRAM_CallbackTypeDef)(SDRAM_HandleTypeDef *hsdram);
0105 typedef void (*pSDRAM_DmaCallbackTypeDef)(MDMA_HandleTypeDef *hmdma);
0106 #endif
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
0124 #define __HAL_SDRAM_RESET_HANDLE_STATE(__HANDLE__) do { \
0125 (__HANDLE__)->State = HAL_SDRAM_STATE_RESET; \
0126 (__HANDLE__)->MspInitCallback = NULL; \
0127 (__HANDLE__)->MspDeInitCallback = NULL; \
0128 } while(0)
0129 #else
0130 #define __HAL_SDRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SDRAM_STATE_RESET)
0131 #endif
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147 HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing);
0148 HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram);
0149 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram);
0150 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef *hsdram);
0151
0152 void HAL_SDRAM_IRQHandler(SDRAM_HandleTypeDef *hsdram);
0153 void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram);
0154 void HAL_SDRAM_DMA_XferCpltCallback(MDMA_HandleTypeDef *hmdma);
0155 void HAL_SDRAM_DMA_XferErrorCallback(MDMA_HandleTypeDef *hmdma);
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165 HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer,
0166 uint32_t BufferSize);
0167 HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer,
0168 uint32_t BufferSize);
0169 HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer,
0170 uint32_t BufferSize);
0171 HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer,
0172 uint32_t BufferSize);
0173 HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
0174 uint32_t BufferSize);
0175 HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
0176 uint32_t BufferSize);
0177
0178 HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
0179 uint32_t BufferSize);
0180 HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
0181 uint32_t BufferSize);
0182
0183 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
0184
0185 HAL_StatusTypeDef HAL_SDRAM_RegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
0186 pSDRAM_CallbackTypeDef pCallback);
0187 HAL_StatusTypeDef HAL_SDRAM_UnRegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId);
0188 HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
0189 pSDRAM_DmaCallbackTypeDef pCallback);
0190 #endif
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram);
0201 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram);
0202 HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command,
0203 uint32_t Timeout);
0204 HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate);
0205 HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber);
0206 uint32_t HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram);
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216 HAL_SDRAM_StateTypeDef HAL_SDRAM_GetState(SDRAM_HandleTypeDef *hsdram);
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234 #ifdef __cplusplus
0235 }
0236 #endif
0237
0238 #endif