2025-11-08 05:40:20
首先说个简单道理,STM32用FATFS这个文件管家管文件。要拿文件大小,就像问手机相册有多少张照片。FATFS自带个fsize函数,你拿文件句柄去问它,它就会返回具体字节数。至于那个flm文件,其实是FATFS自己用的配置表,像手机里的通讯录本子,存着根目录这些基础信息。
为啥得这么做呢?因为FATFS是靠这个标准函数链工作的。比如fsize属于FATFS的文件操作接口,返回值类型是FATFS::FIL,里面正好有个fsize成员。查官方手册写着"获取当前打开文件的长度(字节数)",所以调用fsize就是正规操作。而flm文件是FATFS启动时必须读取的,里面存着根目录地址和文件系统参数,就像给文件管家发个入职说明书。记得之前有人把flm搞丢了,结果SD卡上文件全乱码,后来重写flm文件才恢复。所以别随便删这个文件,它可是FATFS的"记忆本子"。
本题链接: