FATFS周期往SD卡TXT里写ADC数据 占用资源问题

2019-07-20 17:17发布

我做毕设,需要连续保存ADC采集数据,用ucosII的软件定时器控制ADC周期(5ms)采样,然后将转换数据保存在SD卡固定TXT文件里。

现在的问题是,我是f_open该文件后直接每隔5ms执行f_write,直到所有数据全部写完再f_close呢?
还是每隔5ms执行f_open、f_write写数据、f_close呢?


哪种方案更节省资源?
因为ucosII跑的任务较多所以在这里问一下。哪位亲快来解答一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-20 20:56
 精彩回答 2  元偷偷看……
whispericarus
2楼-- · 2019-07-21 01:18
原子哥,我现在又出了新状况,停止采集后,有时候TXT文件里的数据是全的,有时候则全空什么都没有,查了半天都不知道什么原因,是不是最后f_close不成功会导致这种情况?
whispericarus
3楼-- · 2019-07-21 06:23
本帖最后由 whispericarus 于 2016-3-6 01:57 编辑
正点原子 发表于 2016-3-5 17:48
写完再f_close即可。

原子哥,我现在又出了新状况,停止采集后,有时候TXT文件里的数据是全的,有时候则全空什么都没有,查了半天都不知道什么原因,是不是最后f_close不成功会导致这种情况?而且我观察了写数据过程中TXT的文件大小.fsize,是正常增长的,但是一旦采集完毕后再观察TXT的文件大小就成0了,严重怀疑是f_close不成功导致的。后来我观察了f_close的返回值,竟然是正常的,然后我就不知所措喽。
whispericarus
4楼-- · 2019-07-21 08:10
本帖最后由 whispericarus 于 2016-3-6 01:55 编辑
正点原子 发表于 2016-3-5 17:48
写完再f_close即可。

原子哥,我找到原因了,是fatfs文件掉电数据丢失问题,用f_sync解决就可以,长时间周期写数据时,需要每个一段时间调用f_sync,可以防止数据意外丢失。
正点原子
5楼-- · 2019-07-21 08:48
 精彩回答 2  元偷偷看……
lxalxy
6楼-- · 2019-07-21 13:02
 精彩回答 2  元偷偷看……

一周热门 更多>