• A30 STM32_HAL库函数 之 NAND通用驱动 -- A-- 所有函数的介绍及使用


    1 该驱动函数预览

    序号函数名描述
    1HAL_NAND_Init()初始化NAND闪存设备。
    2HAL_NAND_DeInit()反初始化NAND闪存设备。
    3HAL_NAND_MspInit()初始化MCU外设相关的NAND引脚或资源。
    4HAL_NAND_MspDeInit()反初始化MCU外设相关的NAND引脚或资源。
    5HAL_NAND_IRQHandler()NAND闪存中断处理程序。
    6HAL_NAND_ITCallback()NAND闪存中断回调函数。
    7HAL_NAND_ConfigDevice()配置NAND闪存设备。
    8HAL_NAND_Read_ID()读取NAND闪存设备的ID。
    9HAL_NAND_Reset()复位NAND闪存设备。
    10HAL_NAND_Read_Page_8b()从NAND闪存设备中读取8位数据页。
    11HAL_NAND_Read_Page_16b()从NAND闪存设备中读取16位数据页。
    12HAL_NAND_Write_Page_8b()向NAND闪存设备中写入8位数据页。
    13HAL_NAND_Write_Page_16b()向NAND闪存设备中写入16位数据页。
    14HAL_NAND_Read_SpareArea_8b()从NAND闪存设备中读取8位备用区。
    15HAL_NAND_Read_SpareArea_16b()从NAND闪存设备中读取16位备用区。
    16HAL_NAND_Write_SpareArea_8b()向NAND闪存设备中写入8位备用区。
    17HAL_NAND_Write_SpareArea_16b()向NAND闪存设备中写入16位备用区。
    18HAL_NAND_Erase_Block()擦除NAND闪存设备的块。
    19HAL_NAND_Read_Status()读取NAND闪存设备的状态。
    20HAL_NAND_Address_Inc()NAND闪存地址自增函数。
    21HAL_NAND_ECC_Enable()启用NAND闪存设备的ECC(错误校验和纠正)。
    22HAL_NAND_ECC_Disable()禁用NAND闪存设备的ECC。
    23HAL_NAND_GetECC()获取NAND闪存设备的ECC信息。
    24HAL_NAND_GetState()获取NAND闪存设备的状态。
    25HAL_NAND_Read_Status()读取 NAND Flash 的状态寄存器

    以下是使用模板:

    #include "stm32f4xx_hal.h"
    
    int main(void) {
        // HAL初始化
        HAL_Init();
        
        // 初始化MCU外设相关的NAND引脚或资源
        HAL_NAND_MspInit();
        
        // 初始化NAND闪存设备
        HAL_NAND_Init();
        
        // 进行其他操作...
        
        // 配置NAND闪存设备
        HAL_NAND_ConfigDevice();
        
        // 从NAND闪存设备中读取ID
        HAL_NAND_Read_ID();
        
        // 读取NAND闪存设备的状态
        HAL_NAND_Read_Status();
        
        // 反初始化NAND闪存设备
        HAL_NAND_DeInit();
        
        // 反初始化MCU外设相关的NAND引脚或资源
        HAL_NAND_MspDeInit();
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    1.1 HAL_NAND_Init

    函数名HAL_NAND_Init
    函数原形HAL_StatusTypeDef HAL_NAND_Init(NAND_HandleTypeDef *hnand)
    功能描述初始化 NAND Flash 外设
    输入参数hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输出参数
    返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
    先决条件
    被调用函数

    1.2 HAL_NAND_DeInit

    函数名HAL_NAND_DeInit
    函数原形HAL_StatusTypeDef HAL_NAND_DeInit(NAND_HandleTypeDef *hnand)
    功能描述反初始化 NAND Flash 外设
    输入参数hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输出参数
    返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
    先决条件
    被调用函数

    1.3 HAL_NAND_MspInit

    函数名HAL_NAND_MspInit
    函数原形void HAL_NAND_MspInit(NAND_HandleTypeDef *hnand)
    功能描述初始化 NAND Flash 外设相关的 GPIO 和时钟等
    输入参数hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输出参数
    返回值
    先决条件
    被调用函数

    1.4 HAL_NAND_MspDeInit

    函数名HAL_NAND_MspDeInit
    函数原形void HAL_NAND_MspDeInit(NAND_HandleTypeDef *hnand)
    功能描述反初始化 NAND Flash 外设相关的 GPIO 和时钟等
    输入参数hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输出参数
    返回值
    先决条件
    被调用函数

    1.5 HAL_NAND_IRQHandler

    函数名HAL_NAND_IRQHandler
    函数原形void HAL_NAND_IRQHandler(NAND_HandleTypeDef *hnand)
    功能描述处理 NAND Flash 外设的中断
    输入参数hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输出参数
    返回值
    先决条件
    被调用函数

    1.6 HAL_NAND_ITCallback

    函数名HAL_NAND_ITCallback
    函数原形void HAL_NAND_ITCallback(NAND_HandleTypeDef *hnand)
    功能描述处理 NAND Flash 外设的中断回调函数
    输入参数hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输出参数
    返回值
    先决条件
    被调用函数

    1.7 HAL_NAND_ConfigDevice

    函数名HAL_NAND_ConfigDevice
    函数原形HAL_StatusTypeDef HAL_NAND_ConfigDevice(NAND_HandleTypeDef *hnand, NAND_TimingTypeDef *pTiming, NAND_InitTypeDef *pConfig)
    功能描述配置 NAND Flash 外设
    输入参数 1hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输入参数 2pTiming:NAND Flash 外设的时序参数,指向一个 NAND_TimingTypeDef 结构体
    输入参数 3pConfig:NAND Flash 外设的初始化参数,指向一个 NAND_InitTypeDef 结构体
    输出参数
    返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
    先决条件
    被调用函数

    1.8 HAL_NAND_Read_ID

    函数名HAL_NAND_Read_ID
    函数原形HAL_StatusTypeDef HAL_NAND_Read_ID(NAND_HandleTypeDef *hnand, NAND_IDTypeDef *pNAND_ID)
    功能描述读取 NAND Flash 的 ID
    输入参数 1hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输入参数 2pNAND_ID:存储 NAND Flash ID 的结构体,指向一个 NAND_IDTypeDef 结构体
    输出参数
    返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
    先决条件
    被调用函数

    1.9 HAL_NAND_Reset

    函数名HAL_NAND_Reset
    函数原形HAL_StatusTypeDef HAL_NAND_Reset(NAND_HandleTypeDef *hnand)
    功能描述复位 NAND Flash 外设
    输入参数hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输出参数
    返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
    先决条件
    被调用函数

    1.10 HAL_NAND_Read_Page_8b

    函数名HAL_NAND_Read_Page_8b
    函数原形HAL_StatusTypeDef HAL_NAND_Read_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pData, uint32_t Size)
    功能描述以 8 位

    模式读取 NAND Flash 中的一页数据 |
    | 输入参数 1 | hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体 |
    | 输入参数 2 | pAddress:NAND Flash 内的地址,指向一个 NAND_AddressTypeDef 结构体 |
    | 输入参数 3 | pData:存储读取数据的缓冲区 |
    | 输入参数 4 | Size:要读取的数据字节数 |
    | 输出参数 | pData:存储读取数据的缓冲区 |
    | 返回值 | HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR |
    | 先决条件 | 无 |
    | 被调用函数 | 无 |


    1.11 HAL_NAND_Read_Page_16b

    函数名HAL_NAND_Read_Page_16b
    函数原形HAL_StatusTypeDef HAL_NAND_Read_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pData, uint32_t Size)
    功能描述以 16 位模式读取 NAND Flash 中的一页数据
    输入参数 1hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输入参数 2pAddress:NAND Flash 内的地址,指向一个 NAND_AddressTypeDef 结构体
    输入参数 3pData:存储读取数据的缓冲区
    输入参数 4Size:要读取的数据字节数
    输出参数pData:存储读取数据的缓冲区
    返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
    先决条件
    被调用函数

    1.12 HAL_NAND_Write_Page_8b

    函数名HAL_NAND_Write_Page_8b
    函数原形HAL_StatusTypeDef HAL_NAND_Write_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pData, uint32_t Size)
    功能描述以 8 位模式写入数据到 NAND Flash 的一页
    输入参数 1hnand:NAND 句柄,指向一个 NAND_HandleTypeDef 结构体
    输入参数 2pAddress:NAND Flash 内的地址,指向一个 NAND_AddressTypeDef 结构体
    输入参数 3pData:要写入的数据缓冲区
    输入参数 4Size:要写入的数据字节数
    输出参数
    返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
    先决条件
    被调用函数


    该文档修改记录:

    修改时间修改说明
    2024年4月30日第一次发布,介绍了该博客驱动所有函数的介绍及使用

    总结

    以上就是该博客驱动所有函数的介绍及使用的内容。
    有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
    创作不容,如果文档对您有帮助,记得给个赞。

  • 相关阅读:
    go 学习 之 HTTP微服务示例
    算法|每日一题|只出现一次的数字Ⅱ|位运算
    owt-server源码剖析(六)--集群分布及任务调度
    黑客(网络安全)技术自学30天
    看了那么多文章,终于弄懂了脏读、不可重复度、幻读
    【九】http服务器开发--高并发的实现http服务器示例
    IDEA web工程入门笔记
    nginx源码分析--双端列表
    基于JavaSwing开发中国跳棋游戏带论文 课程设计 大作业 毕业设计
    猿创征文|JVM之图解垃圾收集器2-Shenandoah和ZGC
  • 原文地址:https://blog.csdn.net/qq_50808730/article/details/137424265