
用的是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; } } |