如题 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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>