STM32中的PWM的频率和占空比的设置
2013-01-10 21:25
651 查看
网上看到一篇文章,不是很完整,但是有助于我理解,个人觉得还可以,具体的代码,网上有很多,大家可以参考参考计算一下。
下面的这个是stm32的定时器逻辑图,上来有助于理解:
TIM3的ARR寄存器和PSC寄存器,
确定PWM频率。
这里配置的这两个定时器确定了PWM的频率,我的理解是:PWM的周期(频率)就是ARR寄存器值与PSC寄存器值相乘得来,但不是简单意义上的相乘,例如要设置PWM的频率参考上次通用定时器中设置溢出时间的算法,例如输出100HZ频率的PWM,首先,确定TIMx的时钟,除非APB1的时钟分频数设置为1,否则通用定时器TIMx的时钟是APB1时钟的2倍,这时的TIMx时钟为72MHz,用这个TIMx时钟72MHz除以(PSC+1),得到定时器每隔多少秒涨一次,这里给PSC赋7199,计算得定时器每隔0.0001秒涨一次,即此时频率为10KHz,再把这个值乘以(ARR+1)得出PWM频率,假如ARR值为0,即0.0001*(0+1),则输出PWM频率为10KHz,再假如输出频率为100Hz的PWM,则将ARR寄存器设置为99即可。如果想调整PWM占空比精度,则只需降低PSC寄存器的值即可。
TIMx_CCRx寄存器,
确定PWM的占空比。
TIMx_CCR1—TIMx_CCR4确定定时器的CH1—CH4四路PWM的占空比。直接给该寄存器赋0—65535值即可确定占空比。占空比计算方法:TIMx_CCRx的值除以ARR寄存器的值即为占空比,因为占空比在0—100%之间,所以一般TIMx_CCRx寄存器值不能超过ARR寄存器的值,否则可能会引起PWM的频率或占空比的准确性。
下面的这个是stm32的定时器逻辑图,上来有助于理解:
TIM3的ARR寄存器和PSC寄存器,
确定PWM频率。
这里配置的这两个定时器确定了PWM的频率,我的理解是:PWM的周期(频率)就是ARR寄存器值与PSC寄存器值相乘得来,但不是简单意义上的相乘,例如要设置PWM的频率参考上次通用定时器中设置溢出时间的算法,例如输出100HZ频率的PWM,首先,确定TIMx的时钟,除非APB1的时钟分频数设置为1,否则通用定时器TIMx的时钟是APB1时钟的2倍,这时的TIMx时钟为72MHz,用这个TIMx时钟72MHz除以(PSC+1),得到定时器每隔多少秒涨一次,这里给PSC赋7199,计算得定时器每隔0.0001秒涨一次,即此时频率为10KHz,再把这个值乘以(ARR+1)得出PWM频率,假如ARR值为0,即0.0001*(0+1),则输出PWM频率为10KHz,再假如输出频率为100Hz的PWM,则将ARR寄存器设置为99即可。如果想调整PWM占空比精度,则只需降低PSC寄存器的值即可。
TIMx_CCRx寄存器,
确定PWM的占空比。
TIMx_CCR1—TIMx_CCR4确定定时器的CH1—CH4四路PWM的占空比。直接给该寄存器赋0—65535值即可确定占空比。占空比计算方法:TIMx_CCRx的值除以ARR寄存器的值即为占空比,因为占空比在0—100%之间,所以一般TIMx_CCRx寄存器值不能超过ARR寄存器的值,否则可能会引起PWM的频率或占空比的准确性。
相关文章推荐
- STM32中的PWM的频率和占空比的设置
- Stm32 定时器 定时时间设置及PWM频率 占空比的设置总结
- STM32中的PWM的频率和占空比的设置
- stm32中pwm频率和占空比设置
- STM32 F207的PWM输入捕获频率和占空比
- STM32一个Timer输出4路不同频率、可调占空比的PWM
- 详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!
- STM32学习笔记之对PWM频率和占空比都可调测试
- 如何利用STM32通用定时器实现输出两路占空比和频率可调的互补PWM
- 详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!
- STM32定时器输出不同频率不同占空比的PWM
- 详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!
- STM32一个Timer输出4路不同频率、可调占空比的PWM
- STM32的PWM波的频率和占空比
- stm32输出可调频率和可调占空比的pwm信号
- STM32 自定义频率与占空比PWM输出的方法
- STM32一个Timer输出4路不同频率、可调占空比的PWM
- STM32时钟设置和运行频率
- pwm频率和占空比的区别
- STM32一定时器产生不同频率的PWM