Magicoe是攻城狮 · 2022年08月30日 · 上海市长宁区

【MM32F5270开发板试用】五、rt-thread 利用SPI接口驱动SD卡

之前SPI接的是个2.4寸的小屏幕,鉴于MM32F5270片上没有SDIO接口用的是SPI拓展的SD卡,反正开发板上有硬件 不安排上不太好。

上一节咱们提到了加入spi_msd.c的驱动放到keil的工程里
https://aijishu.com/a/1060000...
然后添加rtt的文件系统,具体文件看下图
1.png
相关.h文件的路径也要添加工程设置里哦

接下来就是万年要去修改的rtconfig.h,把文件系统相关的宏定义使能了
2.PNG

最后把drv_spi_tfcard.c源文件放到工程里
这里SD卡接口连接的是SPI3,在之前SPI驱动里已经完成了基本的初始化

/*
 * Copyright (c) 2006-2018, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author            Notes
 * 2018-8-23      SummerGift        the first version
 */

#include <rtthread.h>
#include <rtdevice.h>
#include "drv_spi.h"
#include "spi_msd.h"
#include <dfs_fs.h>

#define DBG_TAG "sdcard"
#define DBG_LVL DBG_ERROR
#include <rtdbg.h>

#ifdef BSP_USING_TF_CARD

static int rt_hw_spi3_tfcard(void)
{
    lpc_spi_bus_attach_device("spi3", "spi30", 13);
    return msd_init("sd0", "spi30");
}
INIT_COMPONENT_EXPORT(rt_hw_spi3_tfcard);


#ifdef RT_USING_FINSH
#include <finsh.h>

#ifdef FINSH_USING_MSH

int sdcard_mount(void)
{
    
#ifdef BSP_USING_TF_CARD
    /* 挂载 TF 卡中的文件系统,参数 elm 表示挂载的文件系统类型为 elm-fat 文件系统*/
    if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
    {
        LOG_I("Filesystem initialized!");
    }
    else
    {
        LOG_E("Failed to initialize filesystem!");
    }
#endif /*BSP_USING_TF_CARD*/
    return 0;
}
MSH_CMD_EXPORT(sdcard_mount, sdcard_mount);

#endif
#endif
#endif /*BSP_USING_TF_CARD*/

编译下载看结果
3.png

视频https://v.qq.com/x/page/f3354...

推荐阅读
关注数
6108
内容数
272
灵动MM32 MCU相关技术知识,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息