stm32 hal timer使用小结
首先需要在stm32CubeMx上进行定时器相关的配置
因为我们用的事timer5,timer5是挂在APB1上的(芯片是:stm32f407)
下面是timer的配置,因为我们timer5的输入时钟是84MHz,所以这里的分频值,我们设置为8400(PSC+1为分频值),接下来我们设置时钟周期,我们设置1秒钟的时钟周期,所以这里我们设置周期值为10000。简单说一下分频值是8400,也就是输入时钟周期为0.1ms一次,我们的10000个周期产生一个中断,所以这里的中断时间是1秒。
然后打开timer5的中断,就可以生产代码了。
遇到的问题是:
1、初始化之后中断标志位并没有被清除,所以当你打开中断的一刻,会直接进入中断处理函数。初始化完成之后需要清除中断标志位。
用到的几个hal函数分别为:
中断处理函数:
HAL_TIM_PeriodElapsedCallback
开启中断函数:
HAL_TIM_Base_Start_IT
关闭中断函数:
HAL_TIM_Base_Stop_IT