[产品应用] CW32L011修改频率周期错误问题求解决

[复制链接]
100|3
firefly2k 发表于 2025-12-28 16:12 | 显示全部楼层 |阅读模式
本帖最后由 firefly2k 于 2025-12-28 20:12 编辑

我用CW32L011,GTIM2的PWM输出,初始化设置好了ARR和CCR。但程序运行中需要实时修改ARR和CCR的值。发现ARR和CCR的值确实修改了(printf实时输出ARR和CCR的值),但是PWM输出的频率(和ARR相关)并不变化,但占空比变了(和CCR相关,但理论上按下面设置占空比应该一直是50%左右,当然前提是频率周期也是实时变化的才行)
CW_GTIM2->ARR = 实时更新的变量
CW_GTIM2->CCR3 = CW_GTIM2->ARR/2;

请问为何修改ARR频率不变?如何解决?(上面实时更新的变量,如果换成和初始化不一样的常数也不行,输出周期一直是初始化时的周期
pssyx 发表于 2025-12-29 14:47 | 显示全部楼层
请检查GTIM的CR1设置,必须使能CR1的UDIS更新,即UDIS=0,新的ARR/CCR值才能生效。
另,参考代码已在邮件中回复。
CR1_UDIS.png
蚊子的噩梦 发表于 2026-1-12 08:11 | 显示全部楼层
检查一下你的代码,确保在修改ARR和CCR之后,没有其他中断或代码影响了PWM的输出
kqh11a 发表于 2026-1-31 23:39 | 显示全部楼层
本帖最后由 kqh11a 于 2026-2-1 02:05 编辑

GTIM 的 ARR 预装载(ARPE)默认使能,导致写入的 ARR 值未立即加载到工作寄存器;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

188

帖子

1

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