SD卡初始化,每次断电再上电不成功,上电之后再按复位键就成功是怎么回事?

2019-07-20 13:40发布

本帖最后由 zhoujianwen 于 2017-5-12 20:56 编辑

我调试的时候,断电的话JLINK会直接断开,我就快速的断电再上电,发现程序卡在这:
不知道这样断电上电调试的正不正确。
SD_Error CmdResp1Error(u8 cmd)
{         
           u32 status;
        while(1)
        {
                status=SDIO->STA;
                if(status&((1<<0)|(1<<2)|(1<<6)))break;  正常值是0x40,这里错误值是0X800. vvv.png
//根据STM32F407的SDIO寄存器值,每次重新上电的时候卡在命令传输正在进行中,这个是什么原因啊!!!
        }
        if(SDIO_GetFlagStatus(SDIO_FLAG_CTIMEOUT) != RESET)                                        //&#207;ìó|3&#172;ê±
        {                                                                                                                                                                    
                 SDIO_ClearFlag(SDIO_FLAG_CTIMEOUT);                                 //&#199;&#229;3y&#195;üá&#238;&#207;ìó|3&#172;ê±±ê&#214;&#190;
                return SD_CMD_RSP_TIMEOUT;
        }        
         if(SDIO_GetFlagStatus(SDIO_FLAG_CCRCFAIL) != RESET)                                        //CRC′í&#206;ó
        {                                                                                                                                                                    
                 SDIO_ClearFlag(SDIO_FLAG_CCRCFAIL);                                 //&#199;&#229;3y±ê&#214;&#190;
                return SD_CMD_CRC_FAIL;
        }               
        if(SDIO->RESPCMD!=cmd)return SD_ILLEGAL_CMD;//&#195;üá&#238;2&#187;&#198;¥&#197;&#228;
  SDIO_ClearFlag(SDIO_STATIC_FLAGS);//&#199;&#229;3y&#203;ùóD±ê&#188;&#199;
        return (SD_Error)(SDIO->RESP1&SD_OCR_ERRORBITS);//·μ&#187;&#216;&#191;¨&#207;ìó|
}


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