SD卡偶尔识别失败?

2019-07-20 08:48发布

最近使用SD卡存储日志的时候,发现SD卡偶尔识别不出来,本来以为是应用层函数的问题,查找应用层函数时,没发现啥问题,用的时原子哥的底层驱动,初始化时发现有时不能成功,所以怀疑SD卡偶尔识别不出来。请大侠们指点一二。
  while((!validvoltage)&&(count<SD_MAX_VOLT_TRIAL))
  {                 
   SDIO_Send_Cmd(SD_CMD_APP_CMD,1,0);   
   errorstatus=CmdResp1Error(SD_CMD_APP_CMD);   
    if(errorstatus!=SD_OK)return errorstatus;   
   SDIO_Send_Cmd(SD_CMD_SD_APP_OP_COND,1,SD_VOLTAGE_WINDOW_SD|SDType);
   errorstatus=CmdResp3Error();         
    if(errorstatus!=SD_OK)return errorstatus;     
   response=SDIO->RESP1;      
   validvoltage=(((response>>31)==1)?1:0);   
   count++;
  }
Debug时,发现validvoltage=(((response>>31)==1)?1:0); 本条指令不满足,所以在while里面不断循环。
那么问题来了,前几个命令都能得到响应,为什么R3响应不对难,道是硬件电压问题,导致响应不对。还是CMD线受到干扰,导致数据不正确?



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。