FatFs是面向小型嵌入式系统的一种通用的 FAT 文件系统。它完全是由 ANSI C 语言编写并且完全独立于底层的 I/O 介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如 8051、PIC、AVR、SH、Z80、H8、ARM 等。FatFs 支持 FAT12、FAT16、FAT32 等格式,所以我们利用前面写好的 SPI Flash 芯片驱动,把 ...
执行SPIFlash初始化函数,执行完毕后将_s_SPI_Init_OK置1。 SPI_disk_read函数:读磁盘驱动器。进行异常处理后,将所有数据读到指定的指针内。 SPI_disk_read SPI_disk_write函数:写磁盘驱动器。进行异常处理后,将所有数据写入指定的扇区内。 注意事项:在写完之后,有一个延时20ms的动作。这是因为:FatFs写页表和...
之前的判断认为是fatfs将页表存在末4个扇区内,所以导致文件无法保存的原因是只格式化了前面的数个扇区,没有成功格式化。现在认为这个判断是错误的。 因为经过调试发现,前几个扇区都是用于存储fatfs相关内容的。之前以为是数据区的sz_fat,目前看来应该是fat文件页表;之前认为是文件页表的sz_dir,实际上是fat目录表。 ...
使用SPI FLASH模拟U盘,并在电脑上打开该U盘可以看见通过 FATFS 创建的文件。 2. 创建项目 在已移植好文件系统的《FATFS》项目基础上,添加 USB 模拟 U 盘的功能。 配置USB MSC设备 点击1处,选中后Device(FS),3处选择MSC大容量存储设备,4处改为4096与FLASH扇区大小保持一致,其他参数默认。 配置USB 时钟 USB时钟...
#include "bsp_spi_flash.h"//添加FLASH驱动 USER_ioctl()修改 FATFS调用该函数获取FLASH的器件信息,函数中添加扇区大小、扇区数量信息等,代码如下: DRESULT USER_ioctl ( BYTE pdrv, /* Physical drive nmuber (0..) */ BYTE cmd, /* Control code */ ...
在STM32CubeMX使能FATFS;在FATFS的用户接口中写入访问片外Flash的读写以及控制等函数;此时FATFS是否能...
1、在已经建立好的工程目录User文件夹下新建两个文件夹,FATFS_V0.09和SPI_SD_Card,FATFS_V0.09用于存放FATFS源文件,SPI_SD_Card用于存放SPI的驱动文件。 2、如图1将ff.c添加到工程文件夹中,并新建diskio.c文件,在diskio.c文件中实现五个函数: DSTATUS disk_initialize (BYTE);//SD卡的初始化 ...
上一篇我们已经在QSPI FLASH上支持了fatfs文件系统:这次我们继续在该代码上支持SD卡文件系统,ST官方在维护CubeMX上对多个硬件驱动的fatfs兼容性做得非常好,所以还是用STM32CubeMX来配置就可以了:在
步骤1:在上个SPI读写FLASH基础上配置FATFS 我的FLASH一个扇区sector为4096字节,所以将扇区大小设置为4096最大;因为需要读取的文件是中文的,所以要配置为中文,然后为以后可能还有别的存储器预留空位,所以配置VOLUMES为其他 步骤2:修改project setting里面的stack大小 生成的项目结构中的fatfs的在中间件里面的第三方支持...
1、在已经建立好的工程目录User文件夹下新建两个文件夹,FATFS_V0.09和SPI_SD_Card,FATFS_V0.09...