stm32 hal timer使用小结

首先需要在stm32CubeMx上进行定时器相关的配置

stm32 hal timer使用小结

因为我们用的事timer5,timer5是挂在APB1上的(芯片是:stm32f407)

stm32 hal timer使用小结

下面是timer的配置,因为我们timer5的输入时钟是84MHz,所以这里的分频值,我们设置为8400(PSC+1为分频值),接下来我们设置时钟周期,我们设置1秒钟的时钟周期,所以这里我们设置周期值为10000。简单说一下分频值是8400,也就是输入时钟周期为0.1ms一次,我们的10000个周期产生一个中断,所以这里的中断时间是1秒。stm32 hal timer使用小结

然后打开timer5的中断,就可以生产代码了。

stm32 hal timer使用小结

遇到的问题是:

1、初始化之后中断标志位并没有被清除,所以当你打开中断的一刻,会直接进入中断处理函数。初始化完成之后需要清除中断标志位。

用到的几个hal函数分别为:

中断处理函数:

HAL_TIM_PeriodElapsedCallback

开启中断函数:

HAL_TIM_Base_Start_IT

关闭中断函数:

HAL_TIM_Base_Stop_IT