OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7706|回复: 9

f-mount 不能挂载SD卡

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2015-4-25
在线时间
0 小时
发表于 2015-7-11 21:05:46 | 显示全部楼层 |阅读模式
5金钱
做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; //设置字体为蓝色 
// //检测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卡 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

191

帖子

0

精华

QQ游客

积分
813
金钱
813
注册时间
2013-6-9
在线时间
181 小时
发表于 2015-7-11 21:30:46 | 显示全部楼层
我的也有这种现象,一张512M TF卡在实验38 SD卡实验中都正常,在实验39 FATFS实验中到载SD卡的时候,停止了,显示屏也只能显示到Use USMART for test,另一张4G的TF卡没有此问题。512M卡在电脑上格式化和读写数据都正常,格式FAT16和FAT32都试过不行。
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2015-4-25
在线时间
0 小时
 楼主| 发表于 2015-7-11 22:08:08 | 显示全部楼层
回复【2楼】rgzdb:
---------------------------------
我的是2G卡。难道要4G以上?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-11 22:52:58 | 显示全部楼层
回复【3楼】gokajoeng:
---------------------------------
2G,4G都可以的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2015-4-25
在线时间
0 小时
 楼主| 发表于 2015-7-12 13:37:45 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
但为什么不能挂载SD卡?
Flash是可以挂载
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-12 23:12:11 | 显示全部楼层
回复【5楼】gokajoeng:
---------------------------------
换个卡试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2015-8-27
在线时间
22 小时
发表于 2016-1-21 14:18:19 | 显示全部楼层
正点原子 发表于 2015-7-12 23:12
回复【5楼】gokajoeng:
---------------------------------
换个卡试试。

请问原子:我用战舰F103-V3的开发板,发现现在SD卡挂载出现问题,f_mount()失败,返回值FILE_NO_SYSTEM,而且后面的f_mkdir()也失败了,我用的参考例程有您的ov2640参考程序和录音机参考程序,我分别用金士顿的8G卡和1G卡,Sandisk的8G卡,microdisk的8G TF卡,都是这个问题,请问这是怎么回事?
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
发表于 2016-1-21 15:18:57 | 显示全部楼层
http://www.openedv.com/thread-66241-1-1.html,参考下我发的这个帖子,应该是SDIO的4总线数据模式太快你的SD卡兼容不了,将SD_Init函数里的4位数据总线改成1位的应该就能挂载了。
回复

使用道具 举报

9

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2015-8-27
在线时间
22 小时
发表于 2016-1-22 14:31:43 | 显示全部楼层
我通过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()还是不行,我还在找原因。
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-1-20
在线时间
6 小时
发表于 2019-1-20 22:21:19 | 显示全部楼层
正点原子 发表于 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;
亲测有效!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 13:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表