可以参考这个计算公式:
T=(arr+1)*(PSC+1)/Tck 其中TCK为时钟频率,PSC为时钟预分频系数,arr为自动重装载值。 f=Tck/(psc+1)*(arr+1) Tck/(psc+1)即为时钟频率,1/f为机器周期,乘以(arr+1)即可得出定时器周期。
主要是通过这个参数设置
TIM_TimebaseInitStruct.TIM_Period
TIM_TimebaseInitStruct.TIM_Prescaler
上面一个就是计数周期,下面就时钟预分频,
比如上面是71,下面是9,假设时钟72m
那么定时中断周期等于72000000除72除10等于100khz,注意这两个参数计算时加1,使用的时候要减1
如果不考虑定时器中断里面代码执行的速度,这个进入定时器中断的频率跟定时器的频率,与定时器的装载值有关
定时器的频率可以通过
TIM_InitStruct.Prescaler ; TIM_InitStruct.Autoreload ;
两个参数设置,前面一个是预分频值,单片机主频除以(这个值+1)得到一个定时器值减1的频率,后面那个就是预装载值