OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5049|回复: 2

FATFS每一次f_write之后必须f_close不然数据保存不了?

[复制链接]

19

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2016-11-3
在线时间
42 小时
发表于 2016-11-3 23:48:48 | 显示全部楼层 |阅读模式
1金钱
FATFS每一次f_write之后必须f_close不然数据保存不了?我必须要关闭文件之后才能保存,否则就保存不了,这个在复制一个TXT里面的内容到另外一个TXT里面的时候非常麻烦,频繁的开启关闭TXT,请问问题出在什么地方?应该怎么破?

最佳答案

查看完整内容[请看2#楼]

一般的文件写入操作都是带缓存的,MFC中的CFile::Write之后还要CFile::Flush一下,数据才会确定被写到存储器上。 我估计FatFs应该也有个类似的机制吧,试试f_sync函数吧,简单看了一下FatFs的API,f_sync就是类似功能。 如果不是这个API,那你再读一下FatFs的说明或者源码找一下,应该有一个类似功能的函数的。 其实还有个简单办法的,那就是调试一下那个f_close,一般关闭文件的时候,都会把缓存数据刷新到存储器上的, ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
7956
金钱
7956
注册时间
2014-8-13
在线时间
1590 小时
发表于 2016-11-3 23:48:49 | 显示全部楼层
本帖最后由 mack13013 于 2016-11-4 05:31 编辑

一般的文件写入操作都是带缓存的,MFC中的CFile::Write之后还要CFile::Flush一下,数据才会确定被写到存储器上。
我估计FatFs应该也有个类似的机制吧,试试f_sync函数吧,简单看了一下FatFs的API,f_sync就是类似功能。
如果不是这个API,那你再读一下FatFs的说明或者源码找一下,应该有一个类似功能的函数的。



其实还有个简单办法的,那就是调试一下那个f_close,一般关闭文件的时候,都会把缓存数据刷新到存储器上的,
里面应该就有直接调用的f_sync或者什么其他flush函数的。

回复

使用道具 举报

19

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2016-11-3
在线时间
42 小时
 楼主| 发表于 2016-11-4 09:23:37 | 显示全部楼层
确诊为未添加f_sync函数导致,给你32个赞!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 06:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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