关于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;
}          
这句程序该怎么理解,望大神指教

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。