我正在使用STM32 eval2开发板并尝试进行调试。它曾经工作得很好,我也没有改变任何东西,但是在最后一周左右,当我处于调试器模式时,我总是陷入这个循环中,但是当我不在时,程序运行良好。调试过程中的无限循环
while(!__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DBCKEND | SDIO_FLAG_STBITERR))
{
if(__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_RXDAVL))
{
*(tempscr + index) = SDIO_ReadFIFO(hsd->Instance);
index++;
}
}
我甚至尝试运行提供了由董事会ST示例项目代码,并没有改变任何事情,和我被困在同一个while循环在他们的代码。
有人知道我在做什么错吗?没有任何意义,因为没有任何改变。
由变量在while循环中定义的误差(分别)是:
接收FIFO溢出错误
数据块发送/接收(CRC校验失败)
数据超时
发送的数据块/接收(通过CRC校验)
启动位不是在宽总线米所有数据信号检测到的ode
它看起来像在这个while循环中,它在if语句中卡住“接收FIFO中可用的数据”标志,如果这样做合理的话。如果陈述我不能跨过。
我用Keil V5和编程的C++
嗯,我一直在努力与这一个星期,我张贴了这个之后差不多吧我想通了。
我有SD卡,并出于某种原因把它固定它。所以我会离开这个以防其他人有这个愚蠢的问题。
您将不得不向我们展示所有这些宏是什么...... – Joe
在尝试使用它之前是否初始化了SDIO控制器?您正在使用硬件流量控制还是旁路模式(48 MHz)?这些都是破碎的,并有勘误。 – rjp
告诉我们什么是芯片,而不是板子。 STM32是一个*范围的部件,而不是芯片。 SDIO线可能与JTAG线复用吗? – Clifford