野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15813|回复: 1

ACMD41参数为什么是0x80100000

[复制链接]
发表于 2019-12-10 16:10:06 | 显示全部楼层 |阅读模式
if(errorstatus==SD_OK)//SD2.0/SD 1.1,否则为MMC卡
        {                                                                                                                                  
                //SD卡,发送ACMD41 SD_APP_OP_COND,参数为:0x80100000
                while((!validvoltage)&&(count<SD_MAX_VOLT_TRIAL))//0XFFFF=65536
                {                                                                                             
                  SDIO_CmdInitStructure.SDIO_Argument = 0x00;//发送CMD55,短响应
      SDIO_CmdInitStructure.SDIO_CmdIndex = (u8)55;          //CMD55
      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);                        //发送CMD55,短响应         
                       
                        errorstatus=CmdResp1Error((u8)55);                  //等待R1响应   
                        if(errorstatus!=SD_OK)return errorstatus;           //响应错误
                       
      //acmd41,命令参数由支持的电压范围及HCS位组成,HCS位置一来区分卡是SDSc还是sdhc
      SDIO_CmdInitStructure.SDIO_Argument = 0x80100000 | SDType;//0x80100000发送ACMD41,短响应       
      SDIO_CmdInitStructure.SDIO_CmdIndex = 0X41;//0X41
      SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short;  //r3
      SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
      SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
      SDIO_SendCommand(&SDIO_CmdInitStructure);
                       
                        errorstatus=CmdResp3Error();                                         //等待R3响应
                        if(errorstatus!=SD_OK)return errorstatus;           //响应错误  
                        response=SDIO->RESP1;;                                                           //得到响应
                        validvoltage=(((response>>31)==1)?1:0);        //PPT34页,0没有完成,卡在循环里。判断SD卡上电是否完成
                        count++;
                }
                if(count>=SD_MAX_VOLT_TRIAL)//OXFFFF
                {
                        errorstatus=SD_INVALID_VOLTRANGE;//error27
                        return errorstatus;
                }         
                if(response&=SD_HIGH_CAPACITY)//PPT34页,第30页为1就是高容量
                {
                        CardType=SDIO_HIGH_CAPACITY_SD_CARD;
                }
        }else//MMC卡
回复

使用道具 举报

 楼主| 发表于 2019-12-10 16:12:52 | 显示全部楼层
从网上下的程序,2.0协议没说ACMD41的参数是这个
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 18:46 , Processed in 0.054872 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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