f-mount 不能挂载SD卡

2019-07-20 04:07发布

做FATFS实验时, 程序在挂载SD卡的时候,停止了,显示屏也只能显示到Use USMART for test,
但把SD卡拔出来,可以检测到SD卡拔出,Flash可以挂载。
SD卡在做SD卡实验是没有问题的,我试过在FATFS的程序中加入一显示SD卡容量的语句,如下面所示:
我把显示容量的语句放在  f_mount(fs[0],"0:",1);之后,显示屏上面就没有显示SD卡的容量。


  exfuns_init(); //为fatfs相关变量申请内存
    res=f_mount(fs[1],"1:",1); //挂载FLASH.
 
//    show_sdcard_info(); //打印SD卡相关信息
// POINT_COLOR=BLUE; //设置字体为蓝 {MOD} 
// //检测SD卡成功    
// LCD_ShowString(30,150,200,16,16,"SD Card OK    ");
// LCD_ShowString(30,170,200,16,16,"SD Card Size:     MB");
// LCD_ShowNum(30+13*8,170,SDCardInfo.CardCapacity>>20,5,16);//显示SD卡容量

  f_mount(fs[0],"0:",1); //挂载SD卡 

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
zx8582040/
2019-07-20 16:44
我通过WinHex这个软件,修改了TF卡的MBR的信息,一般FAT系统去查找MBR区中四个分区表项,任何一个分区表项中存在相关的额SD卡信息,PC就能认出来,但是FATfs是不行的,根据FATfs代码可知,只有第一个分区表项中存在相关的SD卡信息,FATfs才能识别。但是一般地SD卡很有可能信息存在于第4个分区表项,这样FATfs就认不出来了,check_fs()函数就会返回NO_FILE_SYSTEM。具体工作原理和解释请参考这位大神写的博客:http://www.devlabs.cn/?p=226
这样修改了以后确实f_mount()成功了,但是f_mkdir()还是不行,我还在找原因。

一周热门 更多>