野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24531|回复: 1

SDIO卡上电识别,为什么要循环发送ACMD41?

[复制链接]
发表于 2015-2-26 12:19:16 | 显示全部楼层 |阅读模式
  详见《零死角玩转STM32-V2.pdf》的399页,如下
    while ((!validvoltage) && (count < SD_MAX_VOLT_TRIAL))
    {         
      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++;               
    }
回复

使用道具 举报

发表于 2015-2-26 20:40:51 | 显示全部楼层
这是sdio协议规定的,程序是按协议流程走
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-7 01:19 , Processed in 0.043204 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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