打印
[STM32F1]

STM32F103RCT6 SDIO初始化 发送ACMD41命令超时

[复制链接]
3396|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xf1234|  楼主 | 2014-9-28 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
          //acmd41,命令参数由支持的电压范围及HCS位组成,HCS位置一来区分卡是SDSc还是sdhc
      SDIO_CmdInitStructure.SDIO_Argument = SD_VOLTAGE_WINDOW_SD | SDType;          //参数为主机可供电压范围及hcs位
      SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_SD_APP_OP_COND;
      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();        //检测是否正确接收到数据
      if (errorstatus != SD_OK)
      {       
                   
        return(errorstatus);  //没正确接收到acmd41,出错,返回
      }
           /*若卡需求电压在SDIO的供电电压范围内,会自动上电并标志pwr_up位*/
      response = SDIO_GetResponse(SDIO_RESP1);         //读取卡寄存器,卡状态
      validvoltage = (((response >> 31) == 1) ? 1 : 0);        //读取卡的ocr寄存器的pwr_up位,看是否已工作在正常电压
      count++;                          //计算循环次数

调用CmdResp3Error();返回的状态始终是超时,初始化不成功。有没有哪位大哥大姐知道的啊,我用的是网上的一个程序,带FAT文件系统,用micro sd  2G ,先谢谢了。
沙发
xf1234|  楼主 | 2014-9-28 14:40 | 只看该作者
在发送ACMD41之前发CMD55有响应OK,完了再发送ACMD41命令就出错。micro sd卡接口是手工焊接的带了上拉电阻10K六个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

112

帖子

4

粉丝