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

NAND HAL模块驱动程序。该文件提供了驱动作为外部设备挂载的NAND存储器的通用固件。 更多...

#include "stm32g4xx_hal.h"

转到该文件的源代码。

函数

HAL_StatusTypeDef HAL_NAND_Init (NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing, FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing)
 执行NAND存储器初始化序列。
HAL_StatusTypeDef HAL_NAND_DeInit (NAND_HandleTypeDef *hnand)
 执行NAND存储器反初始化序列。
__weak void HAL_NAND_MspInit (NAND_HandleTypeDef *hnand)
 NAND MSP初始化。
__weak void HAL_NAND_MspDeInit (NAND_HandleTypeDef *hnand)
 NAND MSP反初始化。
void HAL_NAND_IRQHandler (NAND_HandleTypeDef *hnand)
 该函数处理NAND设备中断请求。
__weak void HAL_NAND_ITCallback (NAND_HandleTypeDef *hnand)
 NAND中断功能回调。
HAL_StatusTypeDef HAL_NAND_Read_ID (NAND_HandleTypeDef *hnand, NAND_IDTypeDef *pNAND_ID)
 读取NAND存储器的电子签名。
HAL_StatusTypeDef HAL_NAND_Reset (NAND_HandleTypeDef *hnand)
 NAND存储器复位。
HAL_StatusTypeDef HAL_NAND_ConfigDevice (NAND_HandleTypeDef *hnand, const NAND_DeviceConfigTypeDef *pDeviceConfig)
 配置设备:输入设备的物理参数。
HAL_StatusTypeDef HAL_NAND_Read_Page_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToRead)
 从NAND存储器块读取页面(8位寻址)
HAL_StatusTypeDef HAL_NAND_Read_Page_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToRead)
 从NAND存储器块读取页面(16位寻址)
HAL_StatusTypeDef HAL_NAND_Write_Page_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint8_t *pBuffer, uint32_t NumPageToWrite)
 向NAND存储器块写入页面(8位寻址)
HAL_StatusTypeDef HAL_NAND_Write_Page_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint16_t *pBuffer, uint32_t NumPageToWrite)
 向NAND存储器块写入页面(16位寻址)
HAL_StatusTypeDef HAL_NAND_Read_SpareArea_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaToRead)
 从NAND存储器读取备用区域(8位寻址)
HAL_StatusTypeDef HAL_NAND_Read_SpareArea_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaToRead)
 从NAND存储器读取备用区域(16位寻址)
HAL_StatusTypeDef HAL_NAND_Write_SpareArea_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint8_t *pBuffer, uint32_t NumSpareAreaTowrite)
 向NAND存储器写入备用区域(8位寻址)
HAL_StatusTypeDef HAL_NAND_Write_SpareArea_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint16_t *pBuffer, uint32_t NumSpareAreaTowrite)
 向NAND存储器写入备用区域(16位寻址)
HAL_StatusTypeDef HAL_NAND_Erase_Block (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress)
 NAND存储器块擦除。
uint32_t HAL_NAND_Address_Inc (const NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress)
 递增NAND存储器地址。
HAL_StatusTypeDef HAL_NAND_RegisterCallback (NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId, pNAND_CallbackTypeDef pCallback)
 注册用户NAND回调函数,用于覆盖弱预定义回调。
HAL_StatusTypeDef HAL_NAND_UnRegisterCallback (NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId)
 注销用户NAND回调函数,回调重定向到弱预定义回调。
HAL_StatusTypeDef HAL_NAND_ECC_Enable (NAND_HandleTypeDef *hnand)
 动态启用NAND ECC功能。
HAL_StatusTypeDef HAL_NAND_ECC_Disable (NAND_HandleTypeDef *hnand)
 动态禁用FMC_NAND ECC功能。
HAL_StatusTypeDef HAL_NAND_GetECC (NAND_HandleTypeDef *hnand, uint32_t *ECCval, uint32_t Timeout)
 动态获取NAND ECC值。
HAL_NAND_StateTypeDef HAL_NAND_GetState (const NAND_HandleTypeDef *hnand)
 返回NAND状态
uint32_t HAL_NAND_Read_Status (const NAND_HandleTypeDef *hnand)
 NAND存储器读取状态。

详细说明

NAND HAL模块驱动程序。该文件提供了驱动作为外部设备挂载的NAND存储器的通用固件。

作者:
MCD Application Team
注意:

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

本软件根据可 在 LICENSE 文件中找到的条款进行许可。如未随本软件提供 LICENSE 文件,则按原样提供。

  ==============================================================================
                         ##### 如何使用本驱动程序 #####
  ==============================================================================
    [..]
      本驱动程序是一个通用分层驱动程序,包含一组用于
      控制NAND闪存的API。它使用FMC层函数来与
      NAND设备接口。本驱动程序的使用方法如下:

      (+) 使用HAL_NAND_Init()函数进行NAND闪存配置序列
          以及通用和属性空间的控制和时序参数。

      (+) 使用HAL_NAND_Read_ID()函数读取NAND闪存制造商和设备ID。
          读取的信息存储在函数调用者声明的NAND_ID_TypeDef
          结构中。

      (+) 使用以下函数通过读/写操作访问NAND闪存
          HAL_NAND_Read_Page_8b()/HAL_NAND_Read_SpareArea_8b(),
          HAL_NAND_Write_Page_8b()/HAL_NAND_Write_SpareArea_8b(),
          HAL_NAND_Read_Page_16b()/HAL_NAND_Read_SpareArea_16b(),
          HAL_NAND_Write_Page_16b()/HAL_NAND_Write_SpareArea_16b()
          读取/写入页面/备用区域。这些函数使用用户预先在NAND_DeviceConfigTypeDef
          结构中定义的特定设备信息(块、页面大小等)。读/写地址信息包含在
          作为参数传递的Nand_Address_Typedef结构中。

      (+) 使用HAL_NAND_Reset()函数执行NAND闪存复位芯片操作。

      (+) 使用HAL_NAND_Erase_Block()函数执行NAND闪存块擦除操作。
          块擦除地址信息包含在作为参数传递的Nand_Address_Typedef
          结构中。

      (+) 使用HAL_NAND_Read_Status()函数读取NAND闪存状态操作。

      (+) 您还可以通过调用控制API HAL_NAND_ECC_Enable()/
          HAL_NAND_ECC_Disable()来分别启用/禁用ECC纠错
          功能,或使用HAL_NAND_GetECC()函数获取ECC纠错码。

      (+) 您可以通过调用HAL_NAND_GetState()函数来监控NAND设备的HAL状态

    [..]
      (©) 本驱动程序是一组处理标准NAND闪存操作的通用API。
          如果NAND闪存设备包含不同的操作和/或实现,
          应单独实现。

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

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

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

      默认情况下,在HAL_NAND_Init之后,如果状态为HAL_NAND_STATE_RESET,
      所有回调将重置为相应的遗留弱(覆盖)函数。
      MspInit和MspDeInit回调例外,它们分别重置为HAL_NAND_Init
      和HAL_NAND_DeInit中的遗留弱(覆盖)函数,但仅在这些回调为
      空(未预先注册)时才重置。
      否则,如果MspInit或MspDeInit不为空,HAL_NAND_Init和HAL_NAND_DeInit
      将保留并使用用户预先注册的MspInit/MspDeInit回调

      回调只能在READY状态下注册/注销。
      MspInit/MspDeInit回调例外,它们可以在READY或RESET状态下注册/注销,
      因此注册的(用户)MspInit/DeInit回调可在Init/DeInit期间使用。
      在这种情况下,首先使用HAL_NAND_RegisterCallback注册MspInit/MspDeInit用户回调,
      然后再调用HAL_NAND_DeInit或HAL_NAND_Init函数。

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

  

定义于文件 stm32g4xx_hal_nand.c