用的是STM32F407IG,同时开启TIM1, TIM3, 外部计数,开启更新中断
每个定时器中断函数都做了类似如下处理,各自清除自己的标志位,如TIM3中断中清除TIM3-SR,其他定时器SR & 1 是应用需求。
但是在测试中发现,偶然出现 ,进入了中断,但是 if (TIM1->SR) 无法满足的情况,其他定时器也会出现这种情况
程序中没有在其他地方清除SR
void TIM1_UP_TIM10_IRQHandler(void)
{
if (TIM1->SR)
{
// 省略应用程序。
TIM1->SR = 0;
TIM3->SR &= 1;
}
}
void TIM3_IRQHandler(void)
{
if (TIM3->SR)
{
// 省略应用程序。
TIM1->SR &= 1;
TIM3->SR = 0;
}
}
|