STM32的FATFS文件系统移植笔记一、序言经常在网上、群里看到很多人问关于STM32的FATFS文件系统移植的问题,刚好自己最近也在调试这个程序,为了让大家少走弯路,我把我的调试过程和方法也贡献给大家
二、FATFS简介FatFsModule是一种完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计
它完全用标准C语言编写,所以具有良好的硬件平台独立性,可以移植到8051、PIC、AVR、SH、Z80、H8、ARM等系列单片机上而只需做简单的修改
它支持FATl2、FATl6和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8位单片机和16位单片机做了优化
三、移植准备1、FATFS源代码的获取,可以到官网下载:http://elm-chan
org/fsw/ff/00index_e
html最新版本是R0
09版本,我们就移植这个版本的
2、解压文件会得到两个文件夹,一个是doc文件夹,这里是FATFS的一些使用文档和说明,以后在文件编程的时候可以查看该文档
另一个是src文件夹,里面就是我们所要的源文件
3、建立一个STM32的工程,为方便调试,我们应重载printf()底层函数实现串口打印输出
可以参考已经建立好的printf()打印输出工程:http://www
viewtool
com/bbs/foru
d=77&extra=page%3D1四、开始移植1、在已经建立好的工程目录User文件夹下新建两个文件夹,FATFS_V0
09和SPI_SD_Card,FATFS_V0
09用于存放FATFS源文件,SPI_SD_Card用于存放SPI的驱动文件
2、如图1将ff
c添加到工程文件夹中,并新建diskio
c文件,在diskio
c文件中实现五个函数:1
DSTATUSdisk_initialize(BYTE)