最近在利用hal库做STM32的按键消抖的时候采用进入外部中断后开启10ms定时器中断的方式,但是要求进入定时器中断后就关闭定时器,也就相应需要开启和关闭定时器的函数,然后遇到了一个兄台发布的问题及解决方法,记录一下:
问题:使用HAL_TIM_Base_Start_IT(&htim6)启动定时器后,紧接着又使用HAL_TIM_Base_Stop_IT(&htim6)停止定时器。但是,最后还会发生一次中断才停止。 个人认为正常情况应该立即停止,一次中断也不发生。
解答:使用HAL_TIM_Base_Stop_IT之前清除相关中断标志位。