打印
[STM32L4]

STM32L476设定pwm频率不对

[复制链接]
303|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 | 只看该作者
未启用定时器时钟?

使用特权

评论回复
5
公羊子丹| | 2025-5-27 07:40 | 只看该作者
会不会是你TIM1的时钟不是80MHz?检查一下实际输入时钟源是不是你以为的那个。

使用特权

评论回复
6
周半梅| | 2025-5-27 07:41 | 只看该作者
看下你时钟树配置,TIM1如果是从APB2来的,还要注意APB预分频带来的时钟倍频效应。

使用特权

评论回复
7
帛灿灿| | 2025-5-27 07:42 | 只看该作者
STM32某些定时器在APB预分频不为1时,会自动乘以2,你可能是这个机制影响了。

使用特权

评论回复
8
童雨竹| | 2025-5-27 07:42 | 只看该作者
CubeMX里面的“Clock Configuration”那一页仔细看看TIM1实际频率是多少。

使用特权

评论回复
9
万图| | 2025-5-27 07:43 | 只看该作者
你算的2.5KHz是对的,可能是配置没生效?改完预分频和ARR之后记得重新编译和下载。

使用特权

评论回复
10
Wordsworth| | 2025-5-27 07:44 | 只看该作者
打印一下 TIM1->PSC 和 TIM1->ARR 的值,看看程序里是不是真的配置成了 32 和 1000。

使用特权

评论回复
11
Bblythe| | 2025-5-27 07:45 | 只看该作者
仿真模式下暂停程序,也能直接看寄存器确认定时器设置是否正确。

使用特权

评论回复
12
Pulitzer| | 2025-5-27 07:45 | 只看该作者
建议先用个低频测频器或逻辑分析仪量下PWM频率,确认是设定问题还是信号测量错了。

使用特权

评论回复
13
Uriah| | 2025-5-27 07:46 | 只看该作者
如果你用了HAL库,记得别在HAL_TIM_PWM_Start()之后又手动修改寄存器,不然可能覆盖了设置。

使用特权

评论回复
14
Clyde011| | 2025-5-27 07:47 | 只看该作者
我之前也遇到频率不对的情况,后来发现是CubeMX的时钟树配置页面没仔细看,TIM源其实只有40MHz。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

23

帖子

0

粉丝