新手上路
- 积分
- 39
- 金钱
- 39
- 注册时间
- 2015-6-25
- 在线时间
- 0 小时
|
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,不同则为零。?
|
|