STM32G474xx HAL 用户手册
stm32g4xx_hal_sram.h
转到此文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @file    stm32g4xx_hal_sram.h
00004   * @author  MCD Application Team
00005   * @brief   SRAM HAL模块的头文件。
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * 版权所有 (c) 2019 STMicroelectronics。
00010   * 保留所有权利。
00011   *
00012   * 本软件根据 LICENSE 文件中的条款获得许可,
00013   * 该文件位于本软件组件的根目录中。
00014   * 如果没有随本软件提供 LICENSE 文件,则按"原样"提供。
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* 定义以防止重复包含 -------------------------------------*/
00020 #ifndef STM32G4xx_HAL_SRAM_H
00021 #define STM32G4xx_HAL_SRAM_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 #if defined(FMC_BANK1)
00028 
00029 /* 包含 ------------------------------------------------------------------*/
00030 #include "stm32g4xx_ll_fmc.h"
00031 
00032 /** @addtogroup STM32G4xx_HAL_Driver
00033   * @{
00034   */
00035 /** @addtogroup SRAM
00036   * @{
00037   */
00038 
00039 /* 导出的类型定义 ----------------------------------------------------------*/
00040 
00041 /** @defgroup SRAM_Exported_Types SRAM 导出的类型
00042   * @{
00043   */
00044 /**
00045   * @brief  HAL SRAM 状态结构定义
00046   */
00047 typedef enum
00048 {
00049   HAL_SRAM_STATE_RESET     = 0x00U,  /*!< SRAM 尚未初始化或已禁用          */
00050   HAL_SRAM_STATE_READY     = 0x01U,  /*!< SRAM 已初始化并准备就绪          */
00051   HAL_SRAM_STATE_BUSY      = 0x02U,  /*!< SRAM 内部处理正在进行            */
00052   HAL_SRAM_STATE_ERROR     = 0x03U,  /*!< SRAM 错误状态                    */
00053   HAL_SRAM_STATE_PROTECTED = 0x04U   /*!< SRAM 外设 NORSRAM 设备写保护    */
00054 
00055 } HAL_SRAM_StateTypeDef;
00056 
00057 /**
00058   * @brief  SRAM 句柄结构定义
00059   */
00060 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
00061 typedef struct __SRAM_HandleTypeDef
00062 #else
00063 typedef struct
00064 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
00065 {
00066   FMC_NORSRAM_TypeDef           *Instance;  /*!< 寄存器基地址                        */
00067 
00068   FMC_NORSRAM_EXTENDED_TypeDef  *Extended;  /*!< 扩展模式寄存器基地址          */
00069 
00070   FMC_NORSRAM_InitTypeDef       Init;       /*!< SRAM 设备控制配置参数 */
00071 
00072   HAL_LockTypeDef               Lock;       /*!< SRAM 锁定对象                          */
00073 
00074   __IO HAL_SRAM_StateTypeDef    State;      /*!< SRAM 设备访问状态                     */
00075 
00076   DMA_HandleTypeDef             *hdma;      /*!< 指向 DMA 处理程序的指针                          */
00077 
00078 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
00079   void (* MspInitCallback)(struct __SRAM_HandleTypeDef *hsram);               /*!< SRAM Msp 初始化回调              */
00080   void (* MspDeInitCallback)(struct __SRAM_HandleTypeDef *hsram);             /*!< SRAM Msp 反初始化回调            */
00081   void (* DmaXferCpltCallback)(DMA_HandleTypeDef *hdma);                      /*!< SRAM DMA 传输完成回调     */
00082   void (* DmaXferErrorCallback)(DMA_HandleTypeDef *hdma);                     /*!< SRAM DMA 传输错误回调        */
00083 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
00084 } SRAM_HandleTypeDef;
00085 
00086 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
00087 /**
00088   * @brief  HAL SRAM 回调标识枚举定义
00089   */
00090 typedef enum
00091 {
00092   HAL_SRAM_MSP_INIT_CB_ID       = 0x00U,  /*!< SRAM MspInit 回调标识           */
00093   HAL_SRAM_MSP_DEINIT_CB_ID     = 0x01U,  /*!< SRAM MspDeInit 回调标识         */
00094   HAL_SRAM_DMA_XFER_CPLT_CB_ID  = 0x02U,  /*!< SRAM DMA 传输完成回调标识 */
00095   HAL_SRAM_DMA_XFER_ERR_CB_ID   = 0x03U   /*!< SRAM DMA 传输完成回调标识 */
00096 } HAL_SRAM_CallbackIDTypeDef;
00097 
00098 /**
00099   * @brief  HAL SRAM 回调指针定义
00100   */
00101 typedef void (*pSRAM_CallbackTypeDef)(SRAM_HandleTypeDef *hsram);
00102 typedef void (*pSRAM_DmaCallbackTypeDef)(DMA_HandleTypeDef *hdma);
00103 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
00104 /**
00105   * @}
00106   */
00107 
00108 /* 导出的常量 --------------------------------------------------------*/
00109 /* 导出的宏 ------------------------------------------------------------*/
00110 
00111 /** @defgroup SRAM_Exported_Macros SRAM 导出的宏
00112   * @{
00113   */
00114 
00115 /** @brief 重置 SRAM 句柄状态
00116   * @param  __HANDLE__ SRAM 句柄
00117   * @retval 无
00118   */
00119 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
00120 #define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__)         do {                                             \
00121                                                                (__HANDLE__)->State = HAL_SRAM_STATE_RESET; \
00122                                                                (__HANDLE__)->MspInitCallback = NULL;       \
00123                                                                (__HANDLE__)->MspDeInitCallback = NULL;     \
00124                                                              } while(0)
00125 #else
00126 #define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SRAM_STATE_RESET)
00127 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
00128 
00129 /**
00130   * @}
00131   */
00132 
00133 /* 导出的函数 --------------------------------------------------------*/
00134 /** @addtogroup SRAM_Exported_Functions SRAM 导出的函数
00135   * @{
00136   */
00137 
00138 /** @addtogroup SRAM_Exported_Functions_Group1 初始化和反初始化函数
00139   * @{
00140   */
00141 
00142 /* 初始化/反初始化函数  ********************************/
00143 HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing,
00144                                 FMC_NORSRAM_TimingTypeDef *ExtTiming);
00145 HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram);
00146 void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
00147 void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
00148 
00149 /**
00150   * @}
00151   */
00152 
00153 /** @addtogroup SRAM_Exported_Functions_Group2 输入输出和内存控制函数
00154   * @{
00155   */
00156 
00157 /* I/O 操作函数  ***************************************************/
00158 HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer,
00159                                    uint32_t BufferSize);
00160 HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer,
00161                                     uint32_t BufferSize);
00162 HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer,
00163                                     uint32_t BufferSize);
00164 HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer,
00165                                      uint32_t BufferSize);
00166 HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
00167                                     uint32_t BufferSize);
00168 HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
00169                                      uint32_t BufferSize);
00170 HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
00171                                     uint32_t BufferSize);
00172 HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
00173                                      uint32_t BufferSize);
00174 
00175 void HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
00176 void HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
00177 
00178 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
00179 /* SRAM 回调注册/注销 */
00180 HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
00181                                             pSRAM_CallbackTypeDef pCallback);
00182 HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId);
00183 HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
00184                                                pSRAM_DmaCallbackTypeDef pCallback);
00185