天天看点

STM32 PWM周期与频率的计算STM32 PWM周期与频率的计算

文章目录

  • 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)

STM32 PWM周期与频率的计算STM32 PWM周期与频率的计算
例如: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%

STM32 PWM周期与频率的计算STM32 PWM周期与频率的计算
STM32 PWM周期与频率的计算STM32 PWM周期与频率的计算

笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。