FAT文件系统,使用 f_lseek(&s_Fil,0)函数问题

2019-07-20 05:48发布

       STM32F767 用的原子哥的FAT文件系统,使用 f_lseek(&s_Fil,0)函数, 如果第二个参数为0,则TF卡文件的写入速度能达到2.3M ;如果 f_lseek(&s_Fil, 1);第二个参数不为0,则TF卡文件的写入速度瞬间降低到1.5M。不知道有遇到这种情况的没?请各懂得指点一下,非常感谢。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-20 06:46
 精彩回答 2  元偷偷看……
张慎慎
2楼-- · 2019-07-20 10:01
本帖最后由 张慎慎 于 2018-9-29 08:45 编辑

我每次开机后都要在同一个文件中写数据,就是在同一个文件的尾部接着写数据。现在的操作流程大致是这样
        f_open(&s_Fil, "0:GATHER_DATA/data.log", FA_WRITE); //打开文件
        file_size = f_size(&s_Fil);                                              //获取文件大小
        f_lseek(&s_Fil, file_size);                                              //偏移到文件尾部(问题:file_size不为0 导致后续写入变慢)
        f_write(&s_Fil, s_WrPtr, data_len, &sucelen);                 //在尾部接着写数据
这样的话,就会导致f_write函数的写入速度降低很多。发现好像没别人遇到过这样的问题,还请原子哥指点一下。
正点原子
3楼-- · 2019-07-20 12:25
 精彩回答 2  元偷偷看……
张慎慎
4楼-- · 2019-07-20 14:26
正点原子 发表于 2018-9-30 01:55
这个你只能仿真看看了,我没有注意过这个问题

好的,谢谢,我再查查原因

一周热门 更多>