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