解决STM32定时器初始化后直接进入中断问题
STM32初始化完毕后第一次启动定时器直接进入中断,原因是定时器的寄存器中断标识没有被清理掉。
如果使用标准库,先用TIM_ClearITPendingBit(TIM1, TIM_IT_Update)
清除中断标记,然后使能定时器中断,最后启动定时器;
如果使用HAL库,在MX_TIMx_Init
函数后紧跟着__HAL_TIM_CLEAR_IT(&htimX, TIM_IT_UPDATE)
以此来清除中断标识位。
STM32初始化完毕后第一次启动定时器直接进入中断,原因是定时器的寄存器中断标识没有被清理掉。
如果使用标准库,先用TIM_ClearITPendingBit(TIM1, TIM_IT_Update)
清除中断标记,然后使能定时器中断,最后启动定时器;
如果使用HAL库,在MX_TIMx_Init
函数后紧跟着__HAL_TIM_CLEAR_IT(&htimX, TIM_IT_UPDATE)
以此来清除中断标识位。