一,我只是使用了TIM6的定时器,定时一个5s钟.
配置如下
prescaler 是预分频系数
Counter Period 是自动就是ARR,自动重装载值
然后我的晶振是170M赫兹的
计算出来就是5s钟
二,定时器初始化后使用HAL_TIM_Base_Start_IT(&htim6);会直接先进入中断,那么我们只需要在前面加一个
__HAL_TIM_CLEAR_FLAG(&htim6,TIM_IT_UPDATE);
就解决了。
三,hal_tim_base_start_it函数是更新定时器中断和使能定时器的函数,(更新定时器就是使能中断)
而hal_tim_base_start_init只是初始化的函数
四, 需要手动编写中断处理函数
TIM6_IRQHaandler
还有回调函数,但是这个是所有定时器共用的,在里面需要判断定时器的地址是不是正确的。还需要在里面写返回的逻辑
HAL_TIM_PeriodElapsedCallback
而
HAL_TIM_Base_MspInit
这个用于存放GPIO,NVIC和始终相关的代码,一般不用手动配置,在cubemx里配置,