STM32
直播中

七上八下

9年用户 905经验值
私信 关注
[问答]

STM32F207调试SD卡时,调试到SDEnWideBus中的FindSCR(uint16_t rca, uint32_t *pscr)函数时就会卡死怎么解决?

我在调试SD卡时可以读取CSD和CID的信息,但是当调试到 SDEnWideBus 中的  FindSCR(uint16_t rca, uint32_t *pscr)函数时就会卡死在
  while (!(SDIO- gt;STA  amp; (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( amp;SDIO_DataInitStructure);函数后加上延时也不行, if (SDIO_GetFlagStatus(SDIO_FLAG_RXDAVL) != RESET)条件不成立,SDIO_FLAG_RXDAVL没有置位,我的系统时钟是96Mhz,即使降低频率也不行,调了2天了,请大家给点建议!

回帖(1)

张玉华

2024-5-10 14:47:35
可能是SD卡没有启动起来,通讯不成功。建议用示波器看一下通讯时的波形。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分