野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16634|回复: 5

SDIO-SD卡的例程里为什么发完CMD是通过读取SDIO_STA寄存器判断CMD是否发送成功

[复制链接]
发表于 2014-11-25 11:06:07 | 显示全部楼层 |阅读模式
SDIO-SD卡的例程里为什么发完CMD0是通过读取SDIO_STA寄存器判断CMD是否发送成功,而不是读取R0。请大神回答我!谢谢!

  SDIO_CmdInitStructure.SDIO_Argument = 0x0;
  SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_GO_IDLE_STATE;

  SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_No;

  SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
  SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
  SDIO_SendCommand(&SDIO_CmdInitStructure);     
  errorstatus = CmdError();

  if (errorstatus != SD_OK)
  {
    /* CMD Response TimeOut (wait for CMDSENT flag) */
    return(errorstatus);
  }

  
回复

使用道具 举报

发表于 2014-11-25 11:18:31 | 显示全部楼层
用的是库,没跟踪到那么细节。

现在是不是遇到问题调试不出来? 还在在学习源码的时候遇到问题?
回复 支持 反对

使用道具 举报

发表于 2014-11-25 11:19:59 | 显示全部楼层
R0是什么寄存器?忘记了,sd卡的寄存器还是stm32的寄存器?一般来说直接读stm32的sdio状态寄存器会比较方便
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-25 16:28:36 | 显示全部楼层
flyleaf 发表于 2014-11-25 11:19
R0是什么寄存器?忘记了,sd卡的寄存器还是stm32的寄存器?一般来说直接读stm32的sdio状态寄存器会比较方便

我写错了,不是R0是R1,是cmd0对应的响应。我想说能不能通过判断CMDx的响应R1~R7的值来判断是否SD_OK?
回复 支持 反对

使用道具 举报

发表于 2014-11-25 16:52:39 | 显示全部楼层
墨染卿卿 发表于 2014-11-25 16:28
我写错了,不是R0是R1,是cmd0对应的响应。我想说能不能通过判断CMDx的响应R1~R7的值来判断是否SD_OK?

可以的,stm32有专门的寄存器来存储这些命令的响应的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-26 08:02:35 | 显示全部楼层
flyleaf 发表于 2014-11-25 16:52
可以的,stm32有专门的寄存器来存储这些命令的响应的

是的,是SDIO_GetResponse(SDIO_RESP1);
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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