liangliangwa 发表于 2017-7-1 16:21:47

STM32F407使用SDIO驱动SD卡,SSIO_GetResponse()返回值一直是0x80...

STM32F407使用SDIO驱动SD卡,在POWER_ON()中最后一次发送cmd41之后,然后获取SSIO_GetResponse(SDIO_RESP1)的时候,返回值一直是0x80FF8000,这样无法通过下面的判断条件if(response &= SD_HIGH_CAPACITY)去改变卡类型为SDHC。我所使用的卡是金士顿2G HC类型,想请教一下,这是为什么产生这样的原因,有没有人遇到过相同的问题,怎么解决的?还有,正常应该获取到的值是多少?

Dylan疾风闪电 发表于 2018-1-22 10:38:23

补充:
1)初始化代码都是cube直接生成的,直接拿来使用。
2)我使用的芯片是STM32F103VC,对于cube来说应该没影响的,工具生成的都是兼容的。
3)代码是2016年测的,手上已经没有现成的板子了,所以没办法帮你按步仿真:D

Dylan疾风闪电 发表于 2018-1-22 10:32:36

本帖最后由 Dylan疾风闪电 于 2018-1-22 10:34 编辑

1)lz使用的是HAL库的SDIO驱动么?还是其他版本的?
如果是HAL库的,应该是可以用的。您可以用官方的cube生成一个测试工程,试一下~

2)使用某个牌子8G的microSD HC卡的测试,读取成功后 HAL_SD_CardInfoTypedef SDCardInfo变量的截图如下,仅供参考。(整个SDCardInfo变量展开,占用了3张截图)




liangliangwa 发表于 2017-7-1 16:39:22

查了一下这个值应该是MMC卡所返回的值,可是在我这个前面进行区分的时候,满足了V2.0所以就无法执行后面MMC处理程序

sxdahss 发表于 2018-1-22 08:59:16

表示只用过SPI驱动SD卡:):):):)

nyszx 发表于 2018-1-22 09:43:45

不排除楼主卡是否是HC问题,换个卡试试呢?

toofree 发表于 2018-1-22 11:32:08

STM32上没用过SD卡,要不要试试class 4的卡,比较老一些,一般容量也在2G之内。

wolfgang2015 发表于 2018-1-22 14:22:29

STM32快速开发笔记——SD/SDIO/MMC卡主机接口之SDMMC

希望能帮你,卡不能上来就控制:
第一步要进行卡识别;
第二步根据卡的类型进行读写的基本操作;
第三步退出读写;
第四步卡下电;
技巧点还要实时检查卡的电源状态,以便支持热拔插。

大碗刚 发表于 2018-1-22 17:03:53

首先,确定插卡方式是弹簧方式还是翻盖形式。一般弹簧方式的SD卡槽都带有插入检测引脚,软件能检测到是否插入SD卡。之后,可以使用读卡器插电脑上确定SD能正常读写。这些都没问题,可以考虑是SDIO软件配置问题。可以先用SPI方式尝试读卡信息,这样比较简单。最后在使用SDIO方式验证。

无薪税绵 发表于 2018-1-22 22:05:26

SDHC的容量为4~32G,并没有2G这个容量的,
所以楼主的只是普通的SD卡。
因此,过不了是正常的。
页: [1] 2
查看完整版本: STM32F407使用SDIO驱动SD卡,SSIO_GetResponse()返回值一直是0x80...