打印
[STM32F4]

当我在 SFR 窗口中尝试显示 ADC1 内容时CPU卡死

[复制链接]
498|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
地瓜patch|  楼主 | 2025-4-21 22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在 STM32F4 MCU 上使用 ADC1。在连续模式和单模式之间交替使用。
在没有断点的情况下运行程序,正常工作。如果我打开 SFR 窗口,程序仍然可以正常工作。但我打开SFR窗口观察 ADC1 的内容,此时 CPU 会暂停,貌似卡死

使用特权

评论回复
沙发
classroom| | 2025-4-22 11:46 | 只看该作者
在 ADC 的连续模式下,ADC 会持续进行转换。如果你暂停 CPU,ADC 的 DMA 或中断可能会受到影响,导致数据丢失或时序错误。

使用特权

评论回复
板凳
classroom| | 2025-4-22 11:46 | 只看该作者
在单次模式下,ADC 转换完成后会停止,直到你再次启动转换。暂停 CPU 可能会导致 ADC 停留在某个状态,无法继续正常工作。

使用特权

评论回复
地板
laocuo1142| | 2025-4-22 11:47 | 只看该作者
如果你使用了 DMA 来传输 ADC 数据,调试器暂停 CPU 可能会导致 DMA 传输中断,从而导致数据不一致或丢失。

使用特权

评论回复
5
香水城| | 2025-4-22 12:00 | 只看该作者
有些状态标志位会因为相应的寄存器被读取后发生改变,调试状态下可能因此某些标志的状态始终读不到
而出现卡死的情形。 你遇到的可能是这个原因。

单片机调试过程中的第3只眼

使用特权

评论回复
6
laocuo1142| | 2025-4-22 13:00 | 只看该作者
如果你使用了 DMA 来传输 ADC 数据,调试器暂停 CPU 可能会导致 DMA 传输中断,从而导致数据不一致或丢失。

使用特权

评论回复
7
flycamelaaa| | 2025-4-22 13:56 | 只看该作者
ADC 转换完成中断可能会被挂起,导致后续的转换无法启动。

使用特权

评论回复
8
flycamelaaa| | 2025-4-22 14:00 | 只看该作者
尽量避免在连续模式下暂停 CPU。

使用特权

评论回复
9
powerantone| | 2025-4-22 15:00 | 只看该作者
可以在代码中设置断点,而不是直接暂停整个 CPU。

使用特权

评论回复
10
stormwind123| | 2025-4-22 16:20 | 只看该作者
禁用 DMA 或使用循环缓冲区。

使用特权

评论回复
11
probedog| | 2025-4-22 18:03 | 只看该作者
检查中断优先级设置是否正确,避免中断嵌套导致的问题。

使用特权

评论回复
12
classroom| | 2025-4-22 19:36 | 只看该作者
避免在连续模式下暂停 CPU,尽量在单次模式下进行调试。

使用特权

评论回复
13
9dome猫| | 2025-4-30 23:37 | 只看该作者
当你打开 SFR 窗口并查看 ADC1 的寄存器内容时,可能会触发调试器对 MCU 状态的检查或者调试接口的操作。

使用特权

评论回复
14
地瓜patch|  楼主 | 2025-5-1 23:08 | 只看该作者
香水城 发表于 2025-4-22 12:00
有些状态标志位会因为相应的寄存器被读取后发生改变,调试状态下可能因此某些标志的状态始终读不到
而出现 ...

文章不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1522

主题

13925

帖子

28

粉丝