stm32Fatf读写SD卡.docxVIP

  • 1
  • 0
  • 约1.28万字
  • 约 18页
  • 2019-04-18 发布于浙江
  • 举报
stm32 Fatfs 读写SD卡 读写SD是嵌入式系统中一个比较基础的功能,在很多应用中都可以用得上SD卡。折腾了几天,总算移植成功了 最新版Fatfs(Fatfs R0.09) ,成功读写SD卡下文件。 ? ? FatFs ( HYPERLINK /fsw/ff/00index_e.html /fsw/ff/00index_e.html)是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM 等等,不需要做任何修改。 ? 1. SD卡/TF卡 硬件接口 ? SD卡有两种操作接口,SDIO和SPI。 使用SDIO口的速度比较快,SPI的速度比较慢 。 ? ????SD卡引脚描述如下: ? ? ? ? ? ? ? ? ? ? ? ? ?SD卡SPI接法如下: ? ?我使用的是正点原子的开发板,所以采用的是SPI接口的模式。 ? ????TF卡SDIO 模式和SPI模式 引脚定义: ? ? ? ????可以发现Micro SD卡只有8个引脚是因为比SD卡少了一个Vss。使用TF转SD的卡套套在Micro SD卡上,这样一来大小就和SD卡一样大,这时候卡套上的9个引脚就和SD卡一样了,你可以完全当做SD卡来操作。 ? 2. SD卡底层驱动 ? SD卡的操作比较复杂,需要多看看一些文档 。 这里附上SD底层驱动代码,代码说明详见注释 ? Sd卡SPi操作底层代码 :? HYPERLINK /usr/uploads/2012/08/1162003597.c \o sdcard.c sdcard.c?? HYPERLINK /usr/uploads/2012/08/2794809198.h \o sdcard.h sdcard.h 3. Fatfs 移植 ? FatFs 软件包中相关文件: ? ????????ffconf.h???? FatFs 模块配置文件 ????????ff.h ? ? ? ? ? ?FatFs 和应用模块公用的包含文件 ????????ff.c ? ? ? ? ? ?FatFs 模块 ????????diskio.h ? ? FatFs and disk I/O 模块公用的包含文件 ????????integer.h ? 数据类型定义 ????????option ? ? ?可选的外部功能 ????????diskio.c ????FatFs 与disk I/O 模块接口层文件(不属于 FatFs 需要由用户提供) ? FatFs 配置,文件系统的配置项都在 ffconf.h 文件之中: ? ????????(1) _FS_TINY :这个选项在R0.07 版本之中开始出现,在之前的版本都是以独立的文件出现,现在通过一个宏来修改使用起来更方便; ????????(2) _FS_MINIMIZE、_FS_READONLY、_USE_STRFUNC、_USE_MKFS、_USE_FORWARD 这些宏是用来对文件系统进行裁剪 ????????(3) _CODE_PAGE :本选项用于设置语言码的类型 ????????(4) _USE_LFN :取值为0~3,主要用于长文件名的支持及缓冲区的动态分配: ? ? ? ? ? ? ????0:不支持长文件名; ? ? ? ? ? ? ????1:支持长文件名存储的静态分配,一般是存储在BSS 段; ? ? ? ? ? ????? 2:支持长文件名存储的动态分配,存储在栈上; ? ? ? ? ? ? ????3:支持长文件名存储的动态分配,存储在堆上。 ????????(5) _MAX_LFN :可存储长文件的最大长度,其值一般为(12~255),但是缓冲区一般占(_MAX_LFN + 1) * 2 bytes; ????????(6) _LFN_UNICODE :为1 时才支持unicode 码; ????????(7) _FS_RPATH :R0.08a 版本改动配置项,取值范围0~2: ????????????????0:去除相对路径支持和函数; ????????????????1:开启相对路径并且开启f_chdrive()和f_chdir()两个函数; ????????????????2:在1 的基础上添加f_getcwd()函数。 ????????(8) _VOLUMES :支持的逻辑设备数目; ????????(9) _MAX_SS :扇区缓冲的最大值,其值一般为512; ????????(10) _MULTI_PARTITION:定义为1 时,支持磁盘多个分区; ????????(11) _

文档评论(0)

1亿VIP精品文档

相关文档