使用闪迪 16GB SD 卡,使用默认参数格式化为 FAT32,使用默认分配单元大小;
CubeMX 生成的 FATFS 代码,SD 卡底层SD_WriteBlock基于 DMA 实现。
我想请教 FATFS 分区能够存储的文件数量是否存在上限。
我使用 STM32L476 单片机,每 5 秒保存一张图片文件(300~400KB);文件名固定 8 字符格式 xxxxxxx.JPG,x 为十六进制数字。
每张图片写入流程:f_open → f_lseek → f_write→ f_close,同时调用f_utime设置文件时间戳。
部分资料提到最大文件数量为 65536 个。但当我保存文件数量超过约 18500 个后,文件系统就会损坏:单片机无法继续写入新图片,必须重新格式化 SD 卡才能恢复,原有数据全部丢失。将 SD 卡插入电脑后,Windows 会提示需要格式化。
我另外测试了分文件夹方案:每个子文件夹存放 5000 张图片,但总文件数到达大约 18500 时,文件系统依旧损坏。
请问产生该问题的根源以及解决方案是什么?提前感谢各位建议。
|
|