野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21917|回复: 3

求解STM32SDIO官方驱动程序中的 (SD_Error)(SDIO->RESP1 & SD_OCR_ERRORBITS

[复制链接]
发表于 2014-1-17 21:12:51 | 显示全部楼层 |阅读模式
在STM32_SDIO 官方驱动程序中有
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_Error的关系式什么?
回复

使用道具 举报

发表于 2014-1-17 21:45:51 | 显示全部楼层
   resp1是发送命令后,sd卡返回到寄存器的值,这句是判断返回的ocr位标志,具体ocr标志位是什么,就要看协议了
回复 支持 反对

使用道具 举报

发表于 2014-1-17 21:45:59 | 显示全部楼层
   resp1是发送命令后,sd卡返回到寄存器的值,这句是判断返回的ocr位标志,具体ocr标志位是什么,就要看协议了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-17 21:58:45 | 显示全部楼层
那个协议里面相关的内容我看了,但是我不懂怎么和SD_Error这个枚举对应起来。例如,OUT_OF_RANGE对应的事bit-31,但是在SD_Error枚举里面被定义为SD_CMD_OUT_OF_RANGE = (8),那对应函数里面的强制转换是什么意思?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 10:40 , Processed in 0.027978 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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