STM32G474xx HAL用户手册
函数
stm32g4xx_hal_sram.c文件参考

SRAM HAL模块驱动程序。此文件提供通用固件来驱动安装为外部设备的SRAM存储器。更多...

#include "stm32g4xx_hal.h"

转到此文件的源代码。

函数

static void SRAM_DMACplt (DMA_HandleTypeDef *hdma)
 DMA SRAM传输完成回调。
static void SRAM_DMACpltProt (DMA_HandleTypeDef *hdma)
 DMA SRAM传输完成回调。
static void SRAM_DMAError (DMA_HandleTypeDef *hdma)
 DMA SRAM错误回调。
HAL_StatusTypeDef HAL_SRAM_Init (SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing, FMC_NORSRAM_TimingTypeDef *ExtTiming)
 执行SRAM设备初始化序列。
HAL_StatusTypeDef HAL_SRAM_DeInit (SRAM_HandleTypeDef *hsram)
 执行SRAM设备反初始化序列。
__weak void HAL_SRAM_MspInit (SRAM_HandleTypeDef *hsram)
 SRAM MSP初始化。
__weak void HAL_SRAM_MspDeInit (SRAM_HandleTypeDef *hsram)
 SRAM MSP反初始化。
__weak void HAL_SRAM_DMA_XferCpltCallback (DMA_HandleTypeDef *hdma)
 DMA传输完成回调。
__weak void HAL_SRAM_DMA_XferErrorCallback (DMA_HandleTypeDef *hdma)
 DMA传输错误完成回调。
HAL_StatusTypeDef HAL_SRAM_Read_8b (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize)
 从SRAM存储器读取8位缓冲区。
HAL_StatusTypeDef HAL_SRAM_Write_8b (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize)
 向SRAM存储器写入8位缓冲区。
HAL_StatusTypeDef HAL_SRAM_Read_16b (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize)
 从SRAM存储器读取16位缓冲区。
HAL_StatusTypeDef HAL_SRAM_Write_16b (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize)
 向SRAM存储器写入16位缓冲区。
HAL_StatusTypeDef HAL_SRAM_Read_32b (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
 从SRAM存储器读取32位缓冲区。
HAL_StatusTypeDef HAL_SRAM_Write_32b (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
 向SRAM存储器写入32位缓冲区。
HAL_StatusTypeDef HAL_SRAM_Read_DMA (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
 从SRAM存储器读取数据使用DMA传输。
HAL_StatusTypeDef HAL_SRAM_Write_DMA (SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
 向SRAM存储器写入数据缓冲区使用DMA传输。
HAL_StatusTypeDef HAL_SRAM_RegisterCallback (SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, pSRAM_CallbackTypeDef pCallback)
 注册用户SRAM回调用于覆盖弱预定义回调。
HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback (SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId)
 注销用户SRAM回调重定向到弱预定义回调。
HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback (SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, pSRAM_DmaCallbackTypeDef pCallback)
 注册用户SRAM DMA传输回调用于覆盖弱预定义回调。
HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable (SRAM_HandleTypeDef *hsram)
 动态启用SRAM写操作。
HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable (SRAM_HandleTypeDef *hsram)
 动态禁用SRAM写操作。
HAL_SRAM_StateTypeDef HAL_SRAM_GetState (const SRAM_HandleTypeDef *hsram)
 返回SRAM控制器状态。

详细说明

SRAM HAL模块驱动程序。此文件提供通用固件来驱动安装为外部设备的SRAM存储器。

作者:
MCD Application Team
注意:

版权所有 (c) 2019 STMicroelectronics。保留所有权利。

本软件根据可在此软件组件根目录的LICENSE文件中找到的条款进行许可。如果本软件未附带LICENSE文件,则按"原样"提供。

  ==============================================================================
                          ##### 如何使用本驱动器 #####
  ==============================================================================
  [..]
    本驱动器是一个通用分层驱动器,包含用于
    控制SRAM存储器的一组API。它使用FMC层函数来
    与SRAM设备进行接口。
    应按照以下顺序配置FMC以与SRAM/PSRAM存储器进行接口:

   (#) 声明一个SRAM_HandleTypeDef句柄结构,例如:
          SRAM_HandleTypeDef  hsram;和:

       (++) 使用结构成员的允许值填充SRAM_HandleTypeDef句柄的"Init"字段

       (++) 使用NOR或SRAM设备的预定义基寄存器实例填充SRAM_HandleTypeDef句柄的"Instance"字段

       (++) 使用NOR或SRAM扩展模式的预定义基寄存器实例填充SRAM_HandleTypeDef句柄的"Extended"字段

   (#) 声明两个FMC_NORSRAM_TimingTypeDef结构,分别用于正常和扩展
       模式时序;例如:
          FMC_NORSRAM_TimingTypeDef  Timing和FMC_NORSRAM_TimingTypeDef  ExTiming;
      并使用结构成员的允许值填充其字段

   (#) 通过调用函数HAL_SRAM_Init()初始化SRAM控制器。此函数
       执行以下序列:

       (##) 使用函数HAL_SRAM_MspInit()进行MSP硬件层配置
       (##) 使用FMC NORSRAM接口函数FMC_NORSRAM_Init()进行控制寄存器配置
       (##) 使用FMC NORSRAM接口函数FMC_NORSRAM_Timing_Init()进行时序寄存器配置
       (##) 使用FMC NORSRAM接口函数FMC_NORSRAM_Extended_Timing_Init()进行扩展模式时序寄存器配置
       (##) 使用宏__FMC_NORSRAM_ENABLE()启用SRAM设备

   (#) 在此阶段,您可以对连接到NOR/SRAMbank的存储器执行读/写访问。您可以使用以下API执行轮询或DMA传输:
       (++) HAL_SRAM_Read()/HAL_SRAM_Write()用于轮询读/写访问
       (++) HAL_SRAM_Read_DMA()/HAL_SRAM_Write_DMA()用于DMA读/写传输

   (#) 您还可以通过调用控制API HAL_SRAM_WriteOperation_Enable()/
       HAL_SRAM_WriteOperation_Disable()来控制SRAM设备,分别启用/禁用SRAM写操作

   (#) 您可以通过调用函数HAL_SRAM_GetState()持续监控SRAM设备的HAL状态

       *** 回调注册 ***
    =============================================
    [..]
      当编译定义USE_HAL_SRAM_REGISTER_CALLBACKS设置为1时
      允许用户动态配置驱动器回调。

      使用函数HAL_SRAM_RegisterCallback()注册用户回调,
      它允许注册以下回调:
        (+) MspInitCallback    : SRAM MspInit.
        (+) MspDeInitCallback  : SRAM MspDeInit.
      此函数接受HAL外设句柄、回调ID和用户回调函数指针作为参数。

      使用函数HAL_SRAM_UnRegisterCallback()将回调重置为默认
      弱(覆盖)函数。它允许重置以下回调:
        (+) MspInitCallback    : SRAM MspInit.
        (+) MspDeInitCallback  : SRAM MspDeInit.
      此函数接受HAL外设句柄和回调ID作为参数。

      默认情况下,在HAL_SRAM_Init之后,如果状态为HAL_SRAM_STATE_RESET
      所有回调都将重置为相应的传统弱(覆盖)函数。
      MspInit和MspDeInit回调的例外情况除外,它们分别
      在HAL_SRAM_Init和HAL_SRAM_DeInit中重置为传统弱(覆盖)函数,
      仅当这些回调为空(事先未注册)时才执行。
      否则,如果MspInit或MspDeInit不为空,HAL_SRAM_Init和HAL_SRAM_DeInit
      保留并使用用户MspInit/MspDeInit回调(事先已注册)

      回调只能在就绪状态下注册/注销。
      MspInit/MspDeInit回调为例外,它们可以在就绪或复位状态下注册/注销,
      因此注册(用户)的MspInit/DeInit回调可用于初始化/反初始化期间。
      在这种情况下,首先使用HAL_SRAM_RegisterCallback注册MspInit/MspDeInit用户回调
      然后再调用HAL_SRAM_DeInit或HAL_SRAM_Init函数。

      当编译定义USE_HAL_SRAM_REGISTER_CALLBACKS设置为0或
      未定义时,回调注册功能不可用,
      并使用弱(覆盖)回调。

  

定义于文件stm32g4xx_hal_sram.c中。