[原创] 移植 FATFS 文件系统

shileleyuqi   2015-12-20 18:43 楼主
一、实验目的
学习使用STM32F7SD卡的文件系统,为采集的血氧数据提供支持。
二、开发工具
STM32CUBEMX
KEIL V5
MicroSD Card

三、开发步骤
1.在义剑仗乾坤的SDIO的工程文件基础上进行文件系统的移植(详细可参照义剑仗乾坤的SDIO的例程);
2.FATFS 文件系统的源码可以从 fatfs 官网下载:http://elm-chan.org/fsw/ff/00index_e.html
1.png
3.在SDIO的工程文件中添加下载好的文件系统的文件夹可以看到:
2.png
3.png
src文件夹里有如下的文件:integer.h:文件中包含了一些数值类型定义;
diskio.c : 包含底层存储介质的操作函数,这些函数需要用户自己实现,主要添
加底层驱动函数;
ff.c : 独立于底层介质操作文件的函数,利用这些函数实现文件的读写;
cc936.c :本文件在 option 目录下,是简体中文支持所需要添加的文件,包含了简体
中文的 GBK 和转换函数;
ffconf.h:这个头文件包含了对文件系统的各种配置,有点类似 stm32f10x_conf.h 在
STM32 库中的功能;
假如只是使用文件系统的话,则只需要理解 integer.h 及 diskio.c 文件并会调用ff.c 文件中的函数就可以了。
4.详细地添加路径在这里就不过多地描述了,只强调一点:在MDK的Options for target中的 C\C++下的Include Paths一定要添加之前文件系统的路径,如图所示:
4.png
5.png
5.在diskio.c文件中添加SD驱动函数:
11.png
12.png
13.png
6.在ff.c中把f_mout()函数改成:
10.png
7。实验目的:插入SD卡后,想要以文件系统的方式对SD卡进行读取,以发送"STM32-ShileleOK"为例,以代码的方式在SD卡中创建一个.txt的文本文档,然后以文件系统的方式写入"STM32-ShileleOK",然后读取到另一个数组中,并通过串口打印出来!
6.png
7.png
8.png
9.png
实验现象说明:由于我使用的串口调试助手不能直接显示字符,因此用十六进制来表示,S 对应 0x53 ;T 对应 0x54;M 对应 0x4D  等等,其他不做过多地介绍。通过本次实验,可以使用文件系统来存储采集血氧的数据,并实现调用!


回复评论 (2)


很棒!
点赞  2015-12-20 19:03
官方的这个连接 打不开
点赞  2015-12-20 19:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复