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条回答
wangyueming
2019-07-20 17:28
正点原子 发表于 2015-7-12 23:12
回复【5楼】gokajoeng:
---------------------------------
换个卡试试。

今天学到此节,碰到了同样的问题,顺便找到了解决办法,不是上面几楼说的那么麻烦。
只要注释到sdio_sdcard.c 文件中SD_ReadDisk() 和SD_WriteDisk()的一句话就可以正常运行。
原来是:
if(CardType!=SDIO_STD_CAPACITY_SD_CARD_V1_1)         lsector<<=9;
变成:
//        if(CardType!=SDIO_STD_CAPACITY_SD_CARD_V1_1)
                lsector<<=9;
亲测有效!!!

一周热门 更多>