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