我的Fatfs+SDIO驱动SD卡,写大数据的时候总是死的SD_CmdResp1Error这个函数内

2019-10-14 23:14发布

谁能告诉我,我往SD卡数据时写的过程中总是死在SD_CmdResp1Error这个函数内,我用的是STM32F207的芯片,SDIO驱动。加Fatfs。用的是DMA方式传输数据的
使用的库函数是STM32FXX_HAL库。不知道各位有没有遇到这种问题,小弟很急啊。最近忙一个项目,现在这里都还没调好呢。
static HAL_SD_ErrorTypedef SD_CmdResp1Error(SD_HandleTypeDef *hsd, uint8_t SD_CMD)
{
  HAL_SD_ErrorTypedef errorState = SD_OK;
  uint32_t response_R1;

//!!!!总是写的过程中会死在这个While循环中,找了好久都不知道是什么问题,
  while(!__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT))
  {
  }

  if(__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_CTIMEOUT))
  {
    errorState = SD_CMD_RSP_TIMEOUT;

    __HAL_SD_SDIO_CLEAR_FLAG(hsd, SDIO_FLAG_CTIMEOUT);

    return errorState;
  }
  else if(__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_CCRCFAIL))
  {
    errorState = SD_CMD_CRC_FAIL;

    __HAL_SD_SDIO_CLEAR_FLAG(hsd, SDIO_FLAG_CCRCFAIL);

    return errorState;
  }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
472907136
1楼-- · 2019-10-15 01:11
472907136 发表于 2016-1-19 22:28
对了,我的QQ:472907136。
忘各位能够帮忙解决

我好像找到问题了,就是在写的过程中出现SD_CMD_RSP_TIMEOUT,命令响应超时才导致传输终止的,不知道各位有没有遇到这问题
472907136
2楼-- · 2019-10-15 07:04
对了,我的QQ:472907136。
忘各位能够帮忙解决
匆匆过客01
3楼-- · 2019-10-15 12:02
 精彩回答 2  元偷偷看……
hbyue
4楼-- · 2019-10-15 13:18
加延时看看,应该没问题的

一周热门 更多>