加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

(分享)基于STM32 FATFS文件系统移植源码、调试过程、学习笔记

2017/02/15
52
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(3)
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

声明:该设计资料来自啊德Blog文章,希望给需要的朋友带来帮助。

一、序言
经常在网上、群里看到很多人问关于STM32的FATFS文件系统移植的问题,刚好自己最近也在调试这个程序,为了让大家少走弯路,我把我的调试过程和方法也贡献给大家。

二、FATFS简介
FatFs Module是一种完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准C语言编写,所以具有良好的硬件平台独立性,可以移植到8051、PIC、AVR、SH、Z80、H8、ARM等系列单片机上而只需做简单的修改。它支持FATl2、FATl6和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8位单片机和16位单片机做了优化。

三、移植准备
1、FATFS源代码的获取,可以到官网下载:https://elm-chan.org/fsw/ff/00index_e.html 最新版本是R0.09版本,我们就移植这个版本的。
2、解压文件会得到两个文件夹,一个是doc文件夹,这里是FATFS的一些使用文档和说明,以后在文件编程的时候可以查看该文档。另一个是src文件夹,里面就是我们所要的源文件。
3、建立一个STM32的工程,为方便调试,我们应重载printf()底层函数实现串口打印输出。可以参考已经建立好的printf()打印输出工程:https://www.viewtool.com/bbs/foru ... d=77&extra=page%3D1或者“相关附件”下载

四、开始移植

  • 在已经建立好的工程目录User文件夹下新建两个文件夹,FATFS_V0.09和SPI_SD_Card,FATFS_V0.09用于存放FATFS源文件,SPI_SD_Card用于存放SPI的驱动文件。
  • 将ff.c添加到工程文件夹中,并新建diskio.c文件,在diskio.c文件中实现五个函数:
  1. DSTATUS disk_initialize (BYTE);//SD卡的初始化
  2. DSTATUS disk_status (BYTE);//获取SD卡的状态,这里可以不用管
  3. DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);//从SD卡读取数据
  4. DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);//将数据写入SD卡,若该文件系统为只读文件系统则不用实现该函数
  5. DRESULT disk_ioctl (BYTE, BYTE, void*);//获取SD卡文件系统相关信息

如截图:

 FATFS初始化函数:

FATFS状态获取函数:

FATFS底层读数据函数:

注意:更多相关代码下载,见“相关附件”下载

  • STM32_FATFS_SPI.rar
    描述:源文件下载
  • usart_printf.rar
    描述:STM32例程之串口打印输出(源码下载)
  • STM32的FATFS文件系统移植笔记.txt
    描述:详见的讲解,具体查看链接

相关推荐

电子产业图谱