硬汉嵌入式论坛

 找回密码
 立即注册
查看: 707|回复: 5
收起左侧

[技术讨论] usb+fatfs+外挂128flash

[复制链接]

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2025-2-27 21:10:01 | 显示全部楼层 |阅读模式
我用一个机子1发送数据,另一个机子2使用can中断接收数据,然后用fatfs文件系统每500ms写一次数据到.csv文件,我发现有时候机断电后,再上电会出现csv文件丢失的问题(假如有5个csv文件,有时候断电再上电就没有了),为了防止数据正在写的时候据断电导致的问题,我是先将机子1断电,然后机子2等待两三秒再断的电,也会出现有时候文件丢失问题,然后我将
                                                f_res = f_open(&USERFile, str_time,FA_WRITE );
                                                if(f_res == FR_NO_FILE)
                                                {
                                                                Creat_CSVCounter = 0;
                                                                CsvCreatCounter = 0;
                                                }
                                                fil_size = f_size(&USERFile);
                                                f_res = f_lseek(&USERFile,fil_size);               
                                                f_res = f_write(&USERFile, str_flash, sizeof(str_flash), &bw);          
                                                f_res = f_close(&USERFile);                       
                                这段代码屏蔽后,断电再上电,试了很多次,插上usb后csv文件不会丢失。请问一下各位大佬这是什么原因呢,该怎么解决
9b6097aa4ade733acd3652d2dce868f8.png
5416f4b669fba87885da919ae664ed01.png
a1b984f41b22947b05f0bd61db1bcdb2.png
b5803a06fa56ff91fd6f2f0d2271bd27.png
e923510b13253eb79ee1c8771aceb54a.png
回复

使用道具 举报

5

主题

197

回帖

212

积分

高级会员

积分
212
发表于 2025-2-28 00:40:14 | 显示全部楼层
fatfs在文件系统这个层面没有掉电保护的,一方面是每次关机前尽量软件上做个通知,搞好fsync和fclose,确保掉电前FAT表能够被正确更新。另外就是每次启动的时候建议都重新扫一下FAT表,更新索引。原理类似windows的chkdsk /f命令。不过这个过程可能会很耗时(卡越大事越多),需要注意优化。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2025-2-28 05:20:40 | 显示全部楼层
fatfs的掉电问题,采用这个方案稍好点
FatFs Module Application Note

123.png

回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2025-2-28 09:32:00 | 显示全部楼层
alexyzhov 发表于 2025-2-28 00:40
fatfs在文件系统这个层面没有掉电保护的,一方面是每次关机前尽量软件上做个通知,搞好fsync和fclose,确保 ...

好的谢谢大佬,我去试一下
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2025-2-28 09:32:34 | 显示全部楼层
eric2013 发表于 2025-2-28 05:20
fatfs的掉电问题,采用这个方案稍好点
FatFs Module Application Note

好的大佬,我去试一试,感谢
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2025-3-3 17:01:30 | 显示全部楼层
已经解决了,感谢各位大佬,是一个标志位导致的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 17:50 , Processed in 0.042579 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表