基于Rt-thread标准版的sd卡读写测试

硬件:stm32F407zgt6,sdio接口的sd卡

软件:rt-thread studio(简称rts),cubemax


目标:实现读写sk卡

具体步骤:

一、新建基于芯片的sk卡测试工程(图1),测试引脚使用串口6,下载使用st-link swd模式,具体可根据自己的板子和硬件选择。


图1:新建工程

二、点击cubemax settings 打开cubemax,按照图2的步骤进行操作,使能sdio硬件,点击生成代码后一定要关闭cubemax使修改生效,生效后rts会弹框提示。.

图2:启用sdio

四、打开Rt-thread settings 选择以下组件,使之生效。


图3:打开相关组件

五、打开board.h,使能BSP_USING_SDIO,然后编译下载程序后,显示sk卡硬件挂载成功(图5)


图4:使能BSP_USING_SDIO


图5 sk卡硬件挂载成功

六、此时仅是硬件挂在成功,还需初始化虚拟文件系统进行文件操作,在主程序main函数while循环之前中写入以下代码,然后编译,会报错,显示未初始化成功(图6)

if(dfs_mount("sd0","/","elm",0,0)==0){

    LOG_I("dfs mounted success");

}else{

    LOG_E("dfs mount error");

}

图6:未初始化成功

报错原因是因为sk卡初始化需要一定的时间,导致dfs初始化的时候sd卡还未加载,解决办法是点击dfs_mount函数跳转到函数文件中,在函数第一行加入延时100ms即可(图7)


图7:dfs_mount函数延时处理

然后再重新编译下载,显示dfs初始化成功,输入ls命令即可看到sd卡中的文件和目录(图8),此时即可使用msh命令对sk卡中的文件进行读写操作,输入

 echo "hello  rt-thread" hello.txt

将内容写入 hello.txt,然后 cat hello.txt命令即可看到文件内容,点个赞吧O(∩_∩)O。


图8 sd卡挂载成功,dfs系统初始化成功,

文件系统操作常用的 FinSH 命令如下表所示:

ls     显示文件和目录的信息

cd     进入指定目录

cp     复制文件

rm     删除文件或目录

mv     将文件移动位置或改名

echo     将指定内容写入指定文件,当文件存在时,就写入该文件,当文件不存在时就新创建一个文件并写入

cat         展示文件的内容

pwd     打印出当前目录地址

mkdir     创建文件夹

mkfs     格式化文件系统

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容