[STM32L4] STM32L476设定pwm频率不对

[复制链接]
512|13
 楼主| Hitomi22 发表于 2025-5-24 22:58 | 显示全部楼层 |阅读模式
STM32L476以 80MHz 的 TIM1 运行 PWM,预分频器为 32,重新加载为 1000,
则显示 PWM 为 25KHz,而不是计算出的 2.5KHz。

差了10倍
duo点 发表于 2025-5-26 12:51 | 显示全部楼层
PWM模式配置错误?
cr315 发表于 2025-5-26 12:52 | 显示全部楼层
在STM32L476上配置PWM频率时出现偏差,通常与定时器时钟源、分频系数或自动重载值(ARR)的计算错误有关。
jcky001 发表于 2025-5-26 14:00 | 显示全部楼层
未启用定时器时钟?
公羊子丹 发表于 2025-5-27 07:40 | 显示全部楼层
会不会是你TIM1的时钟不是80MHz?检查一下实际输入时钟源是不是你以为的那个。
周半梅 发表于 2025-5-27 07:41 | 显示全部楼层
看下你时钟树配置,TIM1如果是从APB2来的,还要注意APB预分频带来的时钟倍频效应。
帛灿灿 发表于 2025-5-27 07:42 | 显示全部楼层
STM32某些定时器在APB预分频不为1时,会自动乘以2,你可能是这个机制影响了。
童雨竹 发表于 2025-5-27 07:42 | 显示全部楼层
CubeMX里面的“Clock Configuration”那一页仔细看看TIM1实际频率是多少。
万图 发表于 2025-5-27 07:43 | 显示全部楼层
你算的2.5KHz是对的,可能是配置没生效?改完预分频和ARR之后记得重新编译和下载。
Wordsworth 发表于 2025-5-27 07:44 | 显示全部楼层
打印一下 TIM1->PSC 和 TIM1->ARR 的值,看看程序里是不是真的配置成了 32 和 1000。
Bblythe 发表于 2025-5-27 07:45 | 显示全部楼层
仿真模式下暂停程序,也能直接看寄存器确认定时器设置是否正确。
Pulitzer 发表于 2025-5-27 07:45 | 显示全部楼层
建议先用个低频测频器或逻辑分析仪量下PWM频率,确认是设定问题还是信号测量错了。
Uriah 发表于 2025-5-27 07:46 | 显示全部楼层
如果你用了HAL库,记得别在HAL_TIM_PWM_Start()之后又手动修改寄存器,不然可能覆盖了设置。
Clyde011 发表于 2025-5-27 07:47 | 显示全部楼层
我之前也遇到频率不对的情况,后来发现是CubeMX的时钟树配置页面没仔细看,TIM源其实只有40MHz。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

48

帖子

0

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