stm32H743 SD卡SDIO接口驱动需要注意的几个问题

  使用CubeMX生成的代码,具体吧如何生成,想必差不多都知道。

1、 USE_SD_TRANSCEIVER 设为0

stm32H743 SD卡SDIO接口驱动需要注意的几个问题

2、硬件流控制使能

stm32H743 SD卡SDIO接口驱动需要注意的几个问题

3、ACMD41指令

stm32H743 SD卡SDIO接口驱动需要注意的几个问题
发送ACMD41指令时,SDMMC_MAX_VOLT_TRIAL不要设置太大,设为2100。

4、PowerON之后需要延时一定时间

stm32H743 SD卡SDIO接口驱动需要注意的几个问题

5、SDMMC1_D0引脚必须设置为上拉

因为SD卡初始化阶段是单数据线,需要SDMMC1_D0引脚线作为应答线。

6、等待SD卡响应指令1,即Resp1,修改为如下

static uint32_t SDMMC_GetCmdResp1(SDMMC_TypeDef *SDMMCx, uint8_t SD_CMD, uint32_t Timeout)
stm32H743 SD卡SDIO接口驱动需要注意的几个问题

7、查询SD卡状态时,增加如下代码

stm32H743 SD卡SDIO接口驱动需要注意的几个问题
还有很多细节未注意到,了解的朋友,可以互相学习一下,我记录下来。