OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4121|回复: 0

sdio对响应类型为R1的命令进行检查的程序的疑问

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-6-25
在线时间
0 小时
发表于 2015-6-28 22:08:32 | 显示全部楼层 |阅读模式
5金钱
程序如下:其中
#define SDIO_STATIC_FLAGS               ((uint32_t)0x000005FF)
#define SD_OCR_ERRORBITS                ((uint32_t)0xFDFFE008)
static SD_Error CmdResp1Error(uint8_t cmd) 
{   
/*不是这些状态就等待 */
  while (!(SDIO->STA & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT)))
  {
  }

  SDIO->ICR = SDIO_STATIC_FLAGS; //清中断标志

  return (SD_Error)(SDIO->RESP1 &  SD_OCR_ERRORBITS); //判断是否在供电范围
}
最后一句return (SD_Error)(SDIO->RESP1 &  SD_OCR_ERRORBITS);  SD_OCR_ERRORBITS如何理解,从字面上看和ocr寄存器有关,但和ocr相关的响应类型是r3啊,两者进行与运算后结果如何强制转化成SD_Error)?


while (!(SDIO->STA & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT)))
  {
  }
这个语句是怎样实现的?是STA寄存器 中的值和分别和SDIO_FLAG_CCRCFAIL ,SDIO_FLAG_CMDREND ,SDIO_FLAG_CTIMEOUT做比较吗?相同的话结果是1,不同则为零。?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 19:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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