文章目錄
- STM32 PWM周期與頻率的計算
-
- 頻率的計算
- 占空比的計算
- 筆記僅供自學,用來回看複習,不一定适合你,如有錯誤請指出。
STM32 PWM周期與頻率的計算
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period = 100 - 1; //ARR 自動重裝器的值
TIM_TimeBaseInitStructure.TIM_Prescaler = 72 - 1; //PSC 預分頻器的值 對72M(720000000)進行 7200分頻 即10K的頻率下 計10000個數 1s的時間
TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;//重複計數器的值 CCR
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure);
頻率的計算
首先,要明确兩點:
1、
ARR(TIM_Period)
是計數值;
2、
PSC(TIM_Prescaler)
是預分頻值。
計算公式:
Fpwm = 主頻 / ((ARR+1)*(PSC+1))(機關:Hz)
例如:STM32F103的主頻為按如上設定可知
72M
ARR = 100 -1
是以
PSC = 72-1
也就是
Fpwm = 72M/(100*72)= 10kHz
1/100k S = 100us
占空比的計算
計算公式:
duty circle = TIM3->CCR2 / ARR(機關:%)
若是我傳入的,則
Compare = 20
duty circle = 20 / 100 = 20%