纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 5373|回复: 0

STM32调试SD卡总是出现SDIO_FLAG_DCRCFAIL的问题及解决办法

[复制链接]
发表于 2012-12-11 11:31:50 | 显示全部楼层 |阅读模式
问题描述:
4G卡或4G以上的卡可以工作,1G卡测试不能读数据,在调用SD_ReadBlock()的时候总是出现SDIO_FLAG_DCRCFAIL的错误。

解决办法:
在SD_ReadBlock()函数中的读单块命令SD_CMD_READ_SINGLE_BLOCK发送前加上设置卡块大小的处理函数,也就是如下代码:

  /* Set Block Size for Card */
  SDIO_CmdInitStructure.SDIO_Argument = (uint32_t) BlockSize;
  SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_SET_BLOCKLEN;
  SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short;
  SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
  SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
  SDIO_SendCommand(&SDIO_CmdInitStructure);

  errorstatus = CmdResp1Error(SD_CMD_SET_BLOCKLEN);

  if (SD_OK != errorstatus)
  {
      return(errorstatus);
  }
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 16:55 , Processed in 0.528678 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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