stm32定时器时钟源问题

在STM32F1系列中,其中定时器TIM1、TIM8是挂在在APB2上的,而定时器TIM2、3、4是关在在APB1上的。

在工程中我们一般设置APB1CLK = 36M  APB2CLK = 72M

但是为什么这几个定时器在计算定时时间的时候都是使用72M进行计算呢?

在时钟树上我们可以看到,定时器不是单纯的挂在在APB时钟源上的,而是经过了一个倍频器,而这个倍频器的倍频值受APBx时钟相对AHB的分频系数控制的,分频系数为1则x1,其他则x2


拿我们上面的时钟配置来说,AHB=72M    APB1CLK =36M,是一个二分频的关系,这个时候就是触发倍频器x2 

这样挂在APB1上的定时器的时钟源就是  36M*2 ,也就是说定时器2、3、4的时钟源也是72M

而APB2CLK相对于AHBCLk分频系数为1,则倍频器x1   时钟应该为72M*1,也就是定时器1、8的时钟源为72M


-------------------------------------------------------------------

上面主要解释了挂在不同频率的时钟线APBx上的定时器在计算的时钟,时钟源还是一样的  都是72M


当然,如果APB1CLK的时钟分频不是2,而是4  也就是  APB1CLK为18M的时候,这个时钟定时器2、3、4的时钟应该是18M*2 = 36M

   


你可能感兴趣的:(mdk,stm32)