在STM32F1系列中,其中定時器TIM1、TIM8是掛在在APB2上的,而定時器TIM2、3、4是關(guān)在在APB1上的。
在工程中我們一般設置APB1CLK = 36M APB2CLK = 72M
但是為什么這幾個定時器在計算定時時間的時候都是使用72M進行計算呢?
在時鐘樹上我們可以看到,定時器不是單純的掛在在APB時鐘源上的,而是經(jīng)過了一個倍頻器,而這個倍頻器的倍頻值受APBx時鐘相對AHB的分頻系數(shù)控制的,分頻系數(shù)為1則x1,其他則x2
拿我們上面的時鐘配置來說,AHB=72M APB1CLK =36M,是一個二分頻的關(guān)系,這個時候就是觸發(fā)倍頻器x2
這樣掛在APB1上的定時器的時鐘源就是 36M*2 ,也就是說定時器2、3、4的時鐘源也是72M
而APB2CLK相對于AHBCLk分頻系數(shù)為1,則倍頻器x1 時鐘應該為72M*1,也就是定時器1、8的時鐘源為72M
-------------------------------------------------------------------
上面主要解釋了掛在不同頻率的時鐘線APBx上的定時器在計算的時鐘,時鐘源還是一樣的 都是72M
當然,如果APB1CLK的時鐘分頻不是2,而是4 也就是 APB1CLK為18M的時候,這個時鐘定時器2、3、4的時鐘應該是18M*2 = 36M