本帖最后由 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.
//根据STM32F407的SDIO寄存器值,每次重新上电的时候卡在命令传输正在进行中,这个是什么原因啊!!!
}
if(SDIO_GetFlagStatus(SDIO_FLAG_CTIMEOUT) != RESET) //Ïìó|3¬ê±
{
SDIO_ClearFlag(SDIO_FLAG_CTIMEOUT); //Çå3yÃüáîÏìó|3¬ê±±êÖ¾
return SD_CMD_RSP_TIMEOUT;
}
if(SDIO_GetFlagStatus(SDIO_FLAG_CCRCFAIL) != RESET) //CRC′íÎó
{
SDIO_ClearFlag(SDIO_FLAG_CCRCFAIL); //Çå3y±êÖ¾
return SD_CMD_CRC_FAIL;
}
if(SDIO->RESPCMD!=cmd)return SD_ILLEGAL_CMD;//Ãüáî2»Æ¥Åä
SDIO_ClearFlag(SDIO_STATIC_FLAGS);//Çå3yËùóD±ê¼Ç
return (SD_Error)(SDIO->RESP1&SD_OCR_ERRORBITS);//·μ»Ø¿¨Ïìó|
}
一周热门 更多>