[STM32F1]

sdio上电读取SD卡有时死循环了,卡使用高速卡4g , 但 2G 1G可以

[复制链接]
1342|0
手机看帖
扫描二维码
随时随地手机跟帖
CJQ_ENJOY|  楼主 | 2015-1-19 08:48 | 显示全部楼层 |阅读模式
4G, SD卡, IO, ST, ni
sdio上电读取SD卡有时死循环了,卡使用高速卡4g ,  但 2G 1G可以


sdio上电读取SD卡有时死循环了,卡使用高速卡
while ((!validvoltage) && (count < SD_MAX_VOLT_TRIAL))
     {

      /*!< SEND CMD55 APP_CMD with RCA as 0 */
       SDIO_CmdInitStructure.SDIO_Argument = 0x00;
       SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_APP_CMD;
       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_APP_CMD);

      if (errorstatus != SD_OK)
       {
         return(errorstatus);
       }
       SDIO_CmdInitStructure.SDIO_Argument = SD_VOLTAGE_WINDOW_SD | SDType;
       SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_SD_APP_OP_COND;
       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 = CmdResp3Error();
       if (errorstatus != SD_OK)
       {
         return(errorstatus);
       }

      response = SDIO_GetResponse(SDIO_RESP1);
       validvoltage = (((response >> 31) == 1) ? 1 : 0);
       count++;
     }
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

376

帖子

4

粉丝