硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1046|回复: 5
收起左侧

[FatFs] 移植Fatfs初始化SD卡报错,检查了很多遍驱动

[复制链接]

28

主题

99

回帖

183

积分

初级会员

积分
183
发表于 2024-11-27 13:55:34 | 显示全部楼层 |阅读模式


锁定问题在此处,返回命令超时
回复

使用道具 举报

28

主题

99

回帖

183

积分

初级会员

积分
183
 楼主| 发表于 2024-11-27 13:56:11 | 显示全部楼层
/**
  * @brief  Checks for error conditions for R7 response.
  * @param  hsd: SD handle
  * @retval SD Card error state
  */
uint32_t SDMMC_GetCmdResp7(SDMMC_TypeDef *SDMMCx)
{
  uint32_t sta_reg;
  /* 8 is the number of required instructions cycles for the below loop statement.
  The SDMMC_CMDTIMEOUT is expressed in ms */
  uint32_t count = SDMMC_CMDTIMEOUT * (SystemCoreClock / 8U / 1000U);

  do
  {
    if (count-- == 0U)
    {
      return SDMMC_ERROR_TIMEOUT;
    }
    sta_reg = SDMMCx->STA;
  } while (((sta_reg & (SDMMC_FLAG_CCRCFAIL | SDMMC_FLAG_CMDREND | SDMMC_FLAG_CTIMEOUT)) == 0U) ||
           ((sta_reg & SDMMC_FLAG_CMDACT) != 0U));

  if (__SDMMC_GET_FLAG(SDMMCx, SDMMC_FLAG_CTIMEOUT))
  {
    /* Card is SD V2.0 compliant */
    __SDMMC_CLEAR_FLAG(SDMMCx, SDMMC_FLAG_CTIMEOUT);

    return SDMMC_ERROR_CMD_RSP_TIMEOUT;
  }

  else if (__SDMMC_GET_FLAG(SDMMCx, SDMMC_FLAG_CCRCFAIL))
  {
    /* Card is SD V2.0 compliant */
    __SDMMC_CLEAR_FLAG(SDMMCx, SDMMC_FLAG_CCRCFAIL);

    return SDMMC_ERROR_CMD_CRC_FAIL;
  }
  else
  {
    /* Nothing to do */
  }

  if (__SDMMC_GET_FLAG(SDMMCx, SDMMC_FLAG_CMDREND))
  {
    /* Card is SD V2.0 compliant */
    __SDMMC_CLEAR_FLAG(SDMMCx, SDMMC_FLAG_CMDREND);
  }

  return SDMMC_ERROR_NONE;

}
回复

使用道具 举报

28

主题

99

回帖

183

积分

初级会员

积分
183
 楼主| 发表于 2024-11-27 15:25:12 | 显示全部楼层
哼哼唧唧2022 发表于 2024-11-27 13:56
/**
  * @brief  Checks for error conditions for R7 response.
  * @param  hsd: SD handle

SD卡没有回复,感觉像是SD卡问题,但是SD卡是好的
回复

使用道具 举报

28

主题

99

回帖

183

积分

初级会员

积分
183
 楼主| 发表于 2024-11-28 09:02:01 | 显示全部楼层
哼哼唧唧2022 发表于 2024-11-27 15:25
SD卡没有回复,感觉像是SD卡问题,但是SD卡是好的

问题找到了,在stm32h7xx_hal_config.h文件里面,把这个宏定义屏蔽掉,就可以了
//#define  USE_SD_TRANSCEIVER           1U               /*!< use uSD Transceiver */
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116223
QQ
发表于 2024-11-28 09:23:01 | 显示全部楼层
哼哼唧唧2022 发表于 2024-11-28 09:02
问题找到了,在stm32h7xx_hal_config.h文件里面,把这个宏定义屏蔽掉,就可以了
//#define  USE_SD_TRAN ...

这个问题防不胜防

我之前还记录过这个问题。

新版HAL库V1.9.0的SD卡驱动问题解决了,买了一批SD卡测试之后发现是宏定义USE_SD_TRANSCEIVER忘了注释掉了
https://www.armbbs.cn/forum.php? ... 3426&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

28

主题

99

回帖

183

积分

初级会员

积分
183
 楼主| 发表于 2024-11-28 09:37:49 | 显示全部楼层
eric2013 发表于 2024-11-28 09:23
这个问题防不胜防

我之前还记录过这个问题。

是的,断续查了好几天了,我问题找到后,论坛搜到了这个帖子,之前没触发关键字,谢谢硬汉哥
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 12:37 , Processed in 0.295790 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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