这两天正在移植FATFS ,
单片机信号为
STM32F105RC,移植结束测试发现写文件时有时可以,有时又不得。调试发现当写不得的时候,一个现象是打开文件时,文件的开始簇号:-1了。
res=f_open(&fsrc,"/GG/test888.txt",FA_OPEN_ALWAYS | FA_READ | FA_WRITE );//没有这个文件则创建该文件
if(res==FR_OK)
{
printf("创建文件或打开文件成功 O(∩_∩)Orn");
printf("该文件属性:%drn",fsrc.flag);
printf("该文件大小:%drn",fsrc.fsize);
printf("该文件读写开始处:%drn",fsrc.fptr);
printf("该文件开始簇号:%drn",fsrc.org_clust);
printf("该文件当前簇号:%drn",fsrc.curr_clust);
printf("该文件当前扇区号:%drn",fsrc.dsect);
}
else if(res==FR_EXIST)
printf("该文件已存在rn");
else
printf("创建文件或打开文件失败~~~~(>_<)~~~~ rn");
执行的结果
创建文件或打开文件成功 O(∩_∩)O
该文件属性:19
该文件大小:0
该文件读写开始处:0
该文件开始簇号:-1
该文件当前簇号:0
该文件当前扇区号:0
但是由于文件的开始
簇号为-1,导致在使用f_write写文件时,出现了错误。如附件图。
还请大家帮忙看看是什么原因?能够写的文件,开始的
簇号不是-1的。
谢谢