Uriah 发表于 2025-10-2 07:33

外部中断触发后系统偶尔假死

GPIO外部中断触发后,偶尔系统就像卡死了一样,不响应别的任务。看起来像是中断没退出,但堆栈用量测过没超,怀疑是中断里调用了不该调用的函数。

Clyde011 发表于 2025-10-2 07:37

我有次就是ISR里调用了malloc,直接挂了。

公羊子丹 发表于 2025-10-2 07:38

你中断里调用了HAL_Delay吗?这会卡死。

周半梅 发表于 2025-10-2 07:39

有可能是中断优先级配置错了。

帛灿灿 发表于 2025-10-2 07:40

我建议你用硬件watchdog试试。

童雨竹 发表于 2025-10-2 07:41

中断里最好别用printf,会乱套。

万图 发表于 2025-10-2 07:41

看下是不是触发抖动导致重入。

Wordsworth 发表于 2025-10-2 07:42

我怀疑是中断标志位没清掉。

Bblythe 发表于 2025-10-2 07:43

你换个输入源试试,看是不是硬件干扰。

Pulitzer 发表于 2025-10-2 07:44

假死的时候能JTAG进去吗?

Uriah 发表于 2025-10-2 07:45

你栈深度真测过吗?调大点试试看。

lihuami 发表于 2025-10-2 21:40

GPIO与EXTI线映射错误            

lzmm 发表于 2025-10-4 08:55

​​ISR设计不当、资源竞争或硬件配置错误​​

bartonalfred 发表于 2025-10-4 10:21

中断标志未清除               

tifmill 发表于 2025-10-4 11:06

STM32 的中断是抢占式的,若低优先级中断未执行完毕,高优先级中断可抢占;但如果单个 ISR 执行时间超过系统关键任务的超时阈值 ,会导致系统失去响应。

robertesth 发表于 2025-10-4 11:53

中断优先级配置不当            

lihuami 发表于 2025-10-4 13:08

高频噪声或毛刺触发中断,导致系统频繁进入ISR。

eefas 发表于 2025-10-4 14:10

中断服务程序中包含延时、复杂计算或阻塞

beacherblack 发表于 2025-10-4 14:48

在 ISR 开头或确认中断触发后立即清除标志位

xiaoyaodz 发表于 2025-10-4 15:32

未禁用中断嵌套时,高优先级中断可能打断低优先级中断,导致逻辑混乱。
页: [1] 2
查看完整版本: 外部中断触发后系统偶尔假死