调试过程中的无限循环

Infinite loop during debugging

本文关键字:无限循环 过程中 调试      更新时间:2023-10-16

我正在使用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校验通过)

宽总线模式下所有数据信号未检测到起始位

,它看起来像在这个while循环中,它被卡在if语句中为"接收FIFO中可用的数据"标志,如果这有意义的话。我不能跳过if语句

我正在使用keil v5和c++编程

嗯,我已经为此挣扎了一个星期,几乎就在我发布这篇文章之后,我弄明白了。

我把SD卡放进去了,出于某种原因把它拿出来修好了。所以我把这个留在这里,以防有人遇到这个愚蠢的问题。

好吧,我已经纠结了一个星期了,几乎就在我发布这篇文章之后,我弄明白了。

我把SD卡放进去了,出于某种原因把它拿出来修好了。所以我把这个留在这里以防别人有这个愚蠢的问题