识别 TIMX_IRQHandler 触发器的正确​​方法

问题描述

我使用的是 STM32F401RE、CubeMX IDE,主要使用 IDE 生成代码,大多数情况下使用 HAL 函数

假设我在一个计时器上有一个中断,它可能有多个触发器(例如,同一计时器的不同通道)

当我的中断触发时,在我的处理程序 (TIMX_IRQHandler) 中识别是什么触发了中断的正确方法是什么?

按照以下方式进行操作似乎并不理想……检查与 htim 相关的每个标志。

if (__HAL_TIM_GET_FLAG(&htim,flag1) == SET) {
    ...
} else 
if (__HAL_TIM_GET_FLAG(&htim,flag2) == SET) {
    ...
}
....
  1. 正确的方法是什么?
  2. 是否有任何原因为什么我的中断会继续触发,即使我删除了信号,我还可以检查哪些其他标志以及我该怎么做?

是的,我问是因为我不知道为什么会触发中断,我想弄清楚我需要清除哪个待处理标志。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)