STM32F103 fatfs SPI 写SD卡f_write 写同一个文件,写的速度越来越慢

2019-07-20 12:02发布

如题    STM32F103    fatfs文件系统    SPI 方式 写SD卡

我用  f_write 写一个文件,每次都是 先挂载 文件系统f_mount、打开文件f_opendir/f_open、偏移写指针 f_lseek、写入一包数据 f_write 一包2K。  这样子写过程中我监视 Sd_write_errCounter  时间戳数值,具然写 前10M 时是 10~13,写15M时 变成了15~20, 写25M时变成了 35~40
我一个tick 是5ms    ,这样子算下来    文件开始写  2K需要 50ms   
                                                  20M以后 写  2K需要175ms
如此这样 一直写下去岂不时间越来越长,求解,不知道大家有没有碰到过类似这样的问题  ???????

                          {
                                SD_Select = 1;
                                Sd_write_errCounter = OSTimeGet();
                                f_mount(0, &FS);
                                res = f_opendir(&Dir_obj,"RecWAV");  //打开文件夹
                                f_chdir("RecWAV");
                                res = f_open(&File, /*&path1[0]*/"00008.wav", FA_OPEN_EXISTING | FA_WRITE | FA_READ);
                                f_lseek(&File, File.fsize); //指针移到文件最后
                               data_buffer = Ad_Buffer[0];
                                res = f_write(&File, data_buffer, AD_BUFFER_SIZE, &bw);  /* Write it to the dst file */
                                if(res == FR_OK)
                                {
                                                res = f_close(&File); /*关闭文件*/
                                                Ad_SavePage = 0;
                                                sd_write_errCnt = 0;
                                }
                                f_mount(0, NULL);
                                Sd_write_errCounter = OSTimeGet() - Sd_write_errCounter;
                       }

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