事实:
- 魔方IDE 1.16.1
- STM32F746 探索板。
- tiM1 中断使能,中断周期为 1MS。(ARR = 21600-1,PSC = 10-1)
- 我更改了连接到同一板上输入的输出引脚,但有一些延迟(延迟在 100 到 1000 毫秒之间)
- 尝试在引脚更改后查看调试模式下的变量。
- 有一个状态机处理中断例程。
问题:
在尝试查看变量值时,我在 while() 循环中放置了断点。但是,如果中断频率高达 1000 Hz,我的调试模式会在断点处停止,当我单击
resume时,调试会停留在相同的断点处并且没有任何变化。但是当我删除断点并恢复时,代码会正确流动(如果我停止运行或删除并放置调试点,我可以看到值发生变化)。
当 IT 频率低至 1、2、5... Hz 时,我可以看到调试在断点处停止并恢复。
想法:
我在想,TIM IT 的高频率导致非常快的中断,无法在调试模式下捕获。或者运行状态机而不是简单地更改 IT 中的任何标志可能会导致 IT 流程花费很长时间。
更详细:
我看过 TIM1 状态寄存器 -> 更新中断标志,当问题出现时,UIF 不能被视为 0。由于速度原因,它以某种方式未被清除或无法在调试模式下可视化。