| 
 
| 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++;
 }
 
 | 
 |