往SD卡保存AD采集的数据,写入几回,就不再保存数据了

2019-08-17 00:25发布

本帖最后由 伊尹宝贝 于 2016-3-9 17:02 编辑

情况一:
每次打开文件,写入一个数据(实时采集的一个数据),关闭文件,
f_open (&fil,"0:/TEXT/t2.txt", FA_CREATE_ALWAYS|FA_WRITE);
f_lseek (&fil,fil.fptr +28*r);   //指针向前移动
f_write (&fil,tempchar,28, &bww);//单个数值        
f_close(&fil);                        
r++;        

效果如下:
2016-01-02 00:00:03 0.004v
2016-01-02 00:00:03 0.008v
2016-01-02 00:00:03 0.003v
2016-01-02 00:00:04 0.004v
没有问题,数据都能记录下来,不过有时数据记录到某个时候,数据就不保存了,有的时候就没有问题,都能保存下来

情况二:
f_open (&fil,"0:/TEXT/t2.txt", FA_READ);//打开,读文件
f_lseek (&fil,fil.fptr +28*r);   //指针向前移动  28*r        ,读上次保存的一个数
f_read (&fil,buff4,28,&bww);        //读的数据保存在buff,通过代码LCD显示
f_close(&fil);
这几条语句是接上面保存数据的语句后面,LCD显示屏上还能显示到数据,说明保存下去了,但是有时候查看保存的文件,显示0kb,这个什么情况呢?


情况三:
每次打开文件,写入一组数据(实时采集的10个数据,放到一个数组里),关闭文件,
f_open (&fil,"0:/TEXT/t2.txt", FA_CREATE_ALWAYS|FA_WRITE);
f_lseek (&fil,fil.fptr +280*r);   //指针向前移动
f_write (&fil,tempchar,280, &bww);//数组        
f_close(&fil);                        
r++;        

效果如下:
2016-01-01 23:58:29 0.004v
2016-01-01 23:58:29 0.005v
2016-01-01 23:58:30 0.005v
2016-01-01 23:58:30 0.004v
2016-01-01 23:58:30 3.050v
2016-01-01 23:58:30 3.080v
2016-01-01 23:58:30 3.078v
2016-01-01 23:58:30 3.092v
2016-01-01 23:58:30 3.080v
2016-01-01 23:58:31 3.069v
2016-01-01 23:58:31 3.078v
2016-01-01 23:58:31 3.067v
2016-01-01 23:58:31 3.070v
2016-01-01 23:58:31 3.091v
2016-01-01 23:58:31 3.059v
2016-01-01 23:58:32 3.046v

这样能稍微减少下数据的采样时间,但是数据保存时,会出现一些问题,保存几次,数据都不再保存了,或者文件空白。


问题出现在哪里呢?谢谢


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。