[STM32F1] STM32定时器PWM功能

[复制链接]
535|1
 楼主| tabmone 发表于 2024-7-28 13:17 | 显示全部楼层 |阅读模式
先将STM32某定时器计数周期设为0xff,单向递增计数模式,OC比较值设为0x7F。在某时刻将新的计数周期0x7F与比较值0x3F加载到影子寄存器。当正在进行的一个周期结束后,经示波器测量确实可以看到其下一个周期发生变化,但其周期明显与预设值对应不上!再次经过一个周期,定时器才会按照预设值稳定输出。

以上是咨询者不算很清晰的描述【其实咨询TIMER问题最好配上时序图】,但可以了解到他要做的事情就是在ARR=0xff,ccr=0x7F的PWM输出状态下,于某时刻赋予ARR和CCR新值以改变输出波形。
1401766a11832ba9d2.png
事情不算复杂,疑点就是为什么需要2个周期延时后才能有基于新配置的稳定输出。【他这里说的2个周期显然不清楚到底指的前后哪个周期值】

这个问题主要涉及到定时器寄存器的预装功能。有些时候我们需要保证输出波形完整性、连续性,开启ARR及CCR的预装功能就比较合适,使用CubeMx配置时做些勾选即可。开启预装后,修改ARR及CCR的值,生效时间点最长可能延后1个旧计数周期。不过这里要注意,我们修改ARR及CCR的值若不是特别需求,建议在一个计数周期内完成修改,不要一个值在更新事件之前完成赋值,另一个则发生在该更新事件之后。

yiy 发表于 2024-7-28 22:57 | 显示全部楼层
cubeMX好戏是可以配置PWM的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

1687

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部