RT-Thread Studio使用笔记(三):片外SPI Flash

1. 根据上一篇文章,使能SPI设备总线

2. 使能SFUD驱动

3. 使能DFS组件包

    W25Q128是16M spi flash,一共有256个block ,每个Block 64KB。一个Block可以分割为16个扇区(small sector),每个扇区4096字节(4KB),所以我们需要修改fatfs的扇区大小为4096。

4. 根据硬件连接的SPI接口和CS片选信号,注册SPI从设备,比如我用的是SPI2,注册从设备为SPI20,同时,将W25Q128抽象为RTT块儿设备。

#include "spi_flash_sfud.h"


/**********************************函数描述***********************************
* 创建人:   侍任伟
* 创建时间: 2020.06.23
* 功能描述: SPI设备挂载(挂载到已经注册好的SPI总线上),并将W25Q188抽象为RTT块儿设备
* 入口参数:
* 函数返回:
*****************************************************************************/
extern rt_err_t rt_hw_spi_device_attach(const char *bus_name,
                                        const char *device_name,
                                        GPIO_TypeDef* cs_gpiox,
                                        uint16_t cs_gpio_pin);
int spi2_device_init(void)
{
    __HAL_RCC_GPIOB_CLK_ENABLE();
    //设备挂载到SPI总线,抽象为 spi20 设备
    rt_hw_spi_device_attach("spi2", "spi20", GPIOB, GPIO_PIN_12);

    //将W25Q188抽象为RTT块儿设备
    if (rt_sfud_flash_probe("w25q128", "spi20")) {
        rt_kprintf("rt sfud flash probe success");
    } else {
        rt_kprintf("rt sfud flash probe fail");
    };

    return RT_EOK;
}
INIT_DEVICE_EXPORT(spi2_device_init);

终端输出的结果如下,证明初始化成功。

至此,SPI Flash初始化成功,可进行挂载测试。

## 结论

可以看出,RT-Thread Studio的目录结构和基于BSP的env开发环境有一定的区别,但是操作方法大同小异,Studio具有更优的交互界面,使用更方便快捷,呼吁广大开发者支持国产操作系统。

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值