1、首先查看芯片的时钟系统图,可以看出TIM2/3/4/5/6/7是挂在APB1总线上,当APB1预分频=1时,定时器频率不变(36M);当APB1预分频不为1时,定时器频率翻倍(72M);
2、在程序中设置时钟初始化后,可以调用以下函数来查看各时钟总线的频率;
RCC_ClocksType RCC_Clocks;
RCC_GetClocksFreqValue(&RCC_Clocks);
3、定时器定时计算
公式1:频率Fpwm=1/T周期
公式2:频率Fpwm=TIMER_CLK/[(arr+1)*(psc+1)]
①、TIMER_CLK是TIMEx挂在系统时钟APB1总线上的时钟频率;
②、arr是设置在下一个更新事件装入活动的自动重装载寄存器周期的值(计数值);
③、psc是预分频值;
④、频率单位:hz,周期单位:s;
例1:定时1MS
——>所需频率为:Fpwm=1/0.001=1000hz
——>取arr=5,公式等效为(psc+1)=TIMER_CLK/Fpwm/(arr+1),则psc=5999;
例2:定时2MS
——>所需频率为:Fpwm=1/0.002=500hz
——>取arr=7,公式等效为(psc+1)=TIMER_CLK/Fpwm/(arr+1),则psc=8999;