STM32 PWM 生成

问题描述 投票:0回答:1

我需要以 20ms 周期、50Hz 频率生成 PWM。 生成的 PWM 的脉冲宽度(占空比)应在 1.5 至 2ms 之间

我使用的是STM32f103c8t6 MCU,我的APB2外设时钟是72MHz。 我将使用 TIM4 CH1 来生成 pwm。

目前我尝试按照以下公式来做:

Frequency = ClockFreq / ((PSC + 1) * (ARR + 1))
  • 时钟频率 = 72MHz = 72000000
  • PSC = 1440
  • ARR = 1000

1440 * 1000 = 1.440.000

72.000.000 / 1.440.000 = 50 = 频率

计算后我不明白的部分是;我应该如何设置 TIM4->CCR1 值来生成 1.5ms 脉冲宽度以及我需要做什么才能使周期为 20ms?

timer stm32 pwm
1个回答
0
投票

由于频率计算公式包含(ARR + 1)和(PSC + 1),因此您需要 TIMx_PSC = 1439 和 TIMx_ARR = 999。

周期 = 1 / 频率,所以 50Hz 频率和 20ms 周期是同一件事。

使用上述预分频器,定时器计数器 (TIMx_CNT) 每 1 / (72MHz / 1440) = 20us 递增一次,因此对于 1.5ms 脉冲,您设置 TIMx_CCRx = 1500us / 20us = 75。

© www.soinside.com 2019 - 2024. All rights reserved.