返回首页

定时器/PWM 计算器

STM32 定时器/PWM 与 51 定时器初值计算,含误差分析与初始化代码

PSC 预分频
1098
ARR 重装载
65513
实际时间
999.998417 ms
误差
0.0002%
初始化代码
/* STM32 定时器中断  时钟 72000000 Hz  目标 1.000000 s */
/* PSC=1098  ARR=65513  实际 999.998417 ms  误差 0.0002% */

void TIM3_Init(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

    TIM_TimeBaseStruct.TIM_Prescaler     = 1098;   /* PSC */
    TIM_TimeBaseStruct.TIM_Period        = 65513;   /* ARR */
    TIM_TimeBaseStruct.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_TimeBaseStruct.TIM_CounterMode   = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStruct);

    TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
    TIM_Cmd(TIM3, ENABLE);
}
常用档位参考表
目标PSC / ARR实际值误差
1 ms1 / 359991.000000 ms0.0000%
5 ms5 / 599995.000000 ms0.0000%
10 ms10 / 6545410.000069 ms0.0007%
50 ms54 / 6545450.000347 ms0.0007%
100 ms109 / 65454100.000694 ms0.0007%
500 ms549 / 65454500.003472 ms0.0007%
1000 ms1098 / 65513999.998417 ms0.0002%