我在调试SD卡时可以读取CSD和CID的信息,但是当调试到
SDEnWideBus 中的 FindSCR(uint16_t rca, uint32_t *pscr)函数时就会卡死在
while (!(SDIO- gt;STA amp; (SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_D
tiMEOUT | SDIO_FLAG_DBCKEND | SDIO_FLAG_STBITERR
)))
{
if (SDIO_GetFlagStatus(SDIO_FLAG_RXDAVL) != RESET)
{
*(tempscr + index) = SDIO_ReadData();
index++;
if (index == 2)
break;
}
}
里面,即使在前面的SDIO_DataConfig( amp;SDIO_DataInitStructure);函数后加上延时也不行, if (SDIO_GetFlagStatus(SDIO_FLAG_RXDAVL) != RESET)条件不成立,SDIO_FLAG_RXDAVL没有置位,我的系统时钟是96Mhz,即使降低频率也不行,调了2天了,请大家给点建议!