本帖最后由 我是520老谢 于 2016-8-30 22:11 编辑
移植了文件系统之后测试,open 返回的是FR_NO_FILESYSTEM,无法往下操作
/*------------------------------------------------------------------*/
res=f_mount(fs[0],"1:",1); //挂载FLASH.
if(res==FR_NO_FILESYSTEM)//FLASH磁盘,FAT文件系统错误,重新格式化FLASH
{
res=f_mkfs("1:",1,4096);//格式化FLASH,1,盘符;1,不需要引导区,8个扇区为1个簇
if(res==0)
{
res=f_setlabel((const TCHAR *)"1:ALIENTEK"); //设置Flash磁盘的名字为:ALIENTEK
if(res)
{
}
}delay_ms(500);
}
当格式化函数调用之时,返回的是0,格式化成功。
但是--f_setlabel、open、等函数都是返回FR_NO_FILESYSTEM
这是为什么呢?
/*------------------------------------------------------------------*/
发现进入check_fs() 函数之后,
LD_WORD(&fs->win[BS_55AA]) != 0xAA55
return 2; 依然是返回2 ,网上看到很多写的是,返回值是2就表示没有格式化,那么调用格式化函数之后f_mkfs()返回的是0,check_fs()还是返回2.是不是说其实没有格式化成功。但是格式化函数返回的是竟然是0, 如果是格式化不成功,那么不成功的原因是什么呢?
|