之前SPI接的是个2.4寸的小屏幕,鉴于MM32F5270片上没有SDIO接口用的是SPI拓展的SD卡,反正开发板上有硬件 不安排上不太好。
上一节咱们提到了加入spi_msd.c的驱动放到keil的工程里
https://aijishu.com/a/1060000...
然后添加rtt的文件系统,具体文件看下图
相关.h文件的路径也要添加工程设置里哦
接下来就是万年要去修改的rtconfig.h,把文件系统相关的宏定义使能了
最后把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*/
编译下载看结果