rtthread studio与正点原子apollo(13)--QSPI设备之flash存储器

rtthread studio与正点原子apollo[13]--QSPI设备之flash存储器


前言

apollo通过QSPI接口外扩flash芯片W25Q256的驱动


一、工程配置

第一步:

在RT-Thread stuido中创建工程,在设置->组件中使用SPI,配置如下图所示
在这里插入图片描述
外扩W25Q256通过QSPI接口与stm32f767连接,因此使能QSPI功能,同时开启SFUD,是一款开源的串行 SPI Flash 通用驱动库,能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性。

第二步:

在board.h文件中按提示进行QSPI的配置
在这里插入图片描述
根据硬件原理图,在cubemx中配置QSPI接口,并将生成代码
void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
复制到board.c文件的末尾。
在这里插入图片描述
打开stm32f7xx_hal_config.h文件,使能QSPI模块,用于加载相关头文件

#define HAL_QSPI_MODULE_ENABLED

二、代码测试

测试代码如下:

#include "drv_qspi.h"
#include "spi_flash_sfud.h"

#define QSPI_BUS_NAME "qspi1"
#define QSPI_DEVICE_NAME "qspi10"
#define W25Q_FLASH_NAME "W25Q256FV"

#define QSPI_CS_PIN GET_PIN(B,6)

static int rt_qspi_flash_init(void)
{
    rt_err_t result=RT_ERROR;
    result =stm32_qspi_bus_attach_device(QSPI_BUS_NAME, QSPI_DEVICE_NAME, (rt_uint32_t)QSPI_CS_PIN, 4, RT_NULL, RT_NULL);
    if(result!=RT_EOK)
    {
        return -RT_ERROR;
    }

    #ifdef  RT_USING_SFUD
        if (rt_sfud_flash_probe(W25Q_FLASH_NAME, QSPI_DEVICE_NAME) == RT_NULL)
            return -RT_ERROR;
    #endif

    return RT_EOK;
}

测试结果

在这里插入图片描述
通过list_device指令可以查看挂载的设备,包括QSPI总线,QSPI设备和flash;
使用sfud组件的sf probe qspi10指令,可以测试flash是否初始化成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值