关于SDIO实验的疑问R7响应

2019-08-14 01:09发布

SD_Error CmdResp7Error(void)
{
        SD_Error errorstatus=SD_OK;
        u32 status;
        u32 timeout=SDIO_CMD0TIMEOUT;
        while(timeout--)
        {
                status=SDIO->STA;
                if(status&((1<<0)|(1<<2)|(1<<6)))break;  //CRC错误/命令响应超时/已经收到响应(CRC校验成功)
        }
        if((timeout==0)||(status&(1<<2)))       
        {                                                                                                                                                                    
                errorstatus=SD_CMD_RSP_TIMEOUT;       
                SDIO->ICR|=1<<2;                               
                return errorstatus;
        }         
        if(status&1<<6)                                               
        {                                                                  
                errorstatus=SD_OK;
                SDIO->ICR|=1<<6;                               
        }
        return errorstatus;
}          
这句程序该怎么理解,望大神指教

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
我要好好学习
1楼-- · 2019-08-14 15:05
xuande 发表于 2017-9-15 11:23
C语言 + 手册的问题。

去查 SDIO 寄存器组里面 STA 寄存器每一位的含义。

打扰了,自己弄错了
xuande
2楼-- · 2019-08-14 04:13
本帖最后由 xuande 于 2017-9-15 11:24 编辑


C语言 + 手册的问题。

去查 SDIO 寄存器组里面 STA 寄存器每一位的含义。



我要好好学习
3楼-- · 2019-08-14 09:38
xuande 发表于 2017-9-15 11:23
C语言 + 手册的问题。

去查 SDIO 寄存器组里面 STA 寄存器每一位的含义。

每一位我都懂,但是连在一起就不是很懂了啊,CRC错误然后为什么又有校验正确?能详细指教下吗

一周热门 更多>