目前使用的STM32L4系统时钟设定为80MHZ;
每次进入中断服务程序间隔时间为
时间=1/频率×次数
((1+TIM_Prescaler )/80M)*(1+TIM_Period )
定时器的基本设置:
TIMx_Handler.Instance = TIM2; //选择TIM2
TIMx_Handler.Init.Prescaler = 8000-1; //时钟预分频数 例如 :时钟频率=80M/(时钟预分频+1)
TIMx_Handler.Init.CounterMode = TIM_COUNTERMODE_UP; //向上计数
TIMx_Handler.Init.Period = 9999; //Tim计数到该值,则自动装载0xFFFF到计数器CNT(向上计数),因此次数等于1+Period;
HAL_TIM_Base_Init(&TIMx_Handler);
以上的设置,中断时间为:
(1+9999)×(1+(8000-1))/(80×1000×1000) = 1S