STM32 RT-Thread虚拟文件系统挂载操作

有关RT-Thread虚拟文件系统的相关介绍,我这里就不再赘述,需要了解的自行查看RT-Thread 文档中心 -->组件–>虚拟文件系统RT-Thread 文档中心我这里只讲如果配置以及挂载和最终的操作,具体的一些文件相关的API自行查看文档。

具体步骤

  • 步骤一
    - 首先你要有一个bsp文件,如果没有就不用往下看了

  • 步骤二

    • 打开 stm32cubemx来开启配置

    在这里插入图片描述
    - 2.在这里插入图片描述
    这时候只是配置了相关设置,并没有把sd添加到设备中
    在这里插入图片描述
    步骤三,编写Kconfig来添加sd设备,参照rtthread源码bsp中stm32 中任意一个board中的kconfig,将这两段代码加入Kconfig(board --> Kconfig)
    在这里插入图片描述

步骤四:打开menuconfig,开启sd设备驱动

  1. 在这里插入图片描述

在这里插入图片描述
3.
在这里插入图片描述

4 .打开虚拟文件系统dfs
在这里插入图片描述

6.重新编译工程,并且下载到开发板
在这里插入图片描述
步骤五:
这里就可以看到已经有sd设备注册了
在这里插入图片描述
步骤六:挂载文件系统到sd设备,注意添加相关路径以及头文件

#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>

/* defined the LED0 pin: PB1 */
#define LED0_PIN    GET_PIN(B, 0)

static rt_device_t  sd_card = RT_NULL;

int main(void)
{
    int count = 1;
    /* set LED0 pin mode to output */
    rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);

//    while (count++)
//    {
//        rt_pin_write(LED0_PIN, PIN_HIGH);
//        rt_thread_mdelay(100);
//        rt_pin_write(LED0_PIN, PIN_LOW);
//        rt_thread_mdelay(100);
//    }

		//虚拟文件系统测	
		rt_thread_mdelay(5000); //这个延时是保证sd卡有个初始时间
    sd_card = rt_device_find("sd0"); 
	  if(sd_card != RT_NULL)
				{
				   	rt_kprintf("sd card find ok\n");
#if 0
					  if(0 == dfs_mkfs("elm","sd0")) //格式化文件系统
						{
						   rt_kprintf("格式化文件系统成功\n");
						}
						else
						{
						   rt_kprintf("格式化文件系统失败\n");
						}
#endif
					  if (0 == dfs_mount("sd0","/","elm",0,0))  //挂载文件系统
						{
						    rt_kprintf("文件系统挂载成功\n");
						}
						else
						{
						   rt_kprintf("文件系统挂载失败\n");
						}
				}
				else
			 {
				 rt_kprintf("sd card find err\n");
			 }
        rt_thread_mdelay(100);
		
    return RT_EOK;
}

步骤七:程序下载到开发板,查看设备是否成功挂载
在这里插入图片描述
显示文件挂载成功,并且出现文件的相关操作finsh指令,这时候就可以调用虚拟文件相关的API来实现虚拟文件系统的操作。


  • 注意,如果sd卡没有挂载成功,多次复位,重新下载程序,有时是这样。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值