Fatfs f_close函数为啥老是返回FR_DISK_ERR

2019-08-14 02:50发布

小弟写了个简单的函数,函数首先创建一个文件夹Photo,然后在文件夹里面创建一个文件。
但是每次f_open可以成功,但是f_close总是返回0x01,失败。

如果我把f_open,f_close放到一个函数里面,然后让main函数调用,这样就没有问题

麻烦各位大拿帮我看一下是为什么啊?


void camera_new_pathname(u8 *pname)
{   u8 res;   u16 index=0; while(index<0XFFFF) { sprintf((char*)pname,"0HOTO/PIC%05d.bmp",index); res=f_open(ftemp,(const TCHAR*)pname,FA_READ);//尝试打开这个文件 if(res==FR_NO_FILE)break; //该文件名不存在=正是我们需要的. index++; } }
int main(void)
{      
    FIL* f_bmp;
    u8 *pname;
    f_bmp=(FIL *)mymalloc(SRAMIN,sizeof(FIL)); //开辟FIL字节的内存区域 
    mem_init(SRAMIN);     exfuns_init();     f_mount(0,fs[0]);
  f_mount(1,fs[1]);     res=f_mkdir("0:/PHOTO"); //创建PHOTO文件夹


    pname=mymalloc(SRAMIN,30);
//为带路径的文件名分配30个字节的内存     camera_new_pathname(pname);
    res=f_open(f_bmp,pname,FA_WRITE|FA_CREATE_NEW);        if(res != 0)      {    printf(" 打开 %s 文件失败! ", "0HOTO/PIC0001.txt");    sd_ok = 0;      }      printf(" 打开文件完成..... ");

     res = f_close(f_bmp);      if(res != 0)      {    printf(" 关闭 %s 文件失败! ", "0HOTO/PIC0001.txt");    sd_ok = 0;      }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。