STM32 FATFS文件系统之FAT12问题集锦

本文探讨了在使用fatfs在U盘上遇到的问题,包括文件创建失败因LOG目录占用扇区0xff、容量突然减少因FAT表异常擦除。文章提供了修复方法,即检查并修复全0xff扇区,确保文件系统的正确操作。

问题1:fatfs 目录下无法创建文件

例如:使用 res = f_open(&file,"0:/LOG/text.txt",FA_OPEN_ALWAYS  |FA_WRITE )创建txt文件,结果:res=FR_OK 。进入U盘模式查看,却发现LOG文件夹下面,没有text.txt文件

事故原因:LOG目录可用扇区为0,text.txt无法写入LOG目录下。如图:

扇区1:正常记录了LOG目录的信息,有文件2021-1-5.csv,2021-1-6.csv...

扇区2-8:也是LOG目录的信息区,但都被0xff填满。在fat12文件系统中,0xff表示占用,0x00才表示空闲。可是w25q128擦除结果却是0xff,所以此时LOG目录的2-8扇区被判断为占用,整个LOG目录没有空闲扇区可以记录text.txt文件信息。因此导致了test.txt文件无法在LOG目录下面创建。

解决办法:将0xff变成0x00即可

问题2:fatfs U盘容量突然被占用

现象:U盘总容量12M,只写入几百kb的文件信息,容量却只剩1M

原因:FAT表中的簇信息被异常擦除,如图:

fatfs容量统计原理是统计FAT表下面空闲的簇(即:0x000)的数量,来计算空闲容量的,总容量也是计算FAT表下面有多少个簇。

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值