0
收藏
微博
微信
复制链接

PWM输出没波形?别只盯着通道模式和GPIO复用

2026-06-26 10:09
59

PWM配置是嵌入式开发的基础操作,可偏偏有人把定时器通道模式、GPIO复用功能反复核对了无数遍,示波器探头上依然是一条直线。问题往往不在这些明面上的寄存器,而是藏在几个容易被忽略的角落。

9.png

1. 高级定时器的主输出没开

这是最常见的坑。TIM1和TIM8属于高级定时器,比通用定时器多了一道保险:主输出使能位MOE。CubeMX里有个选项叫Master Output Enable,或者代码里需要调用TIM_CtrlPWMOutputs函数。这步漏了,PWM通道内部被硬件强制封锁,配再多参数也没用。

2. 死区时间没配,互补通道拖后腿

如果你启用了互补输出通道,比如TIM1_CH1N,但没有配置死区时间,MOE位同样不会真正生效。这是硬件层面的安全机制,不是Bug,而是设计规范。

3. 占空比值越界了

CCR寄存器的值必须严格满足:0小于CCR小于ARR。如果CCR等于0,输出恒低电平;如果CCR大于等于ARR,输出恒高电平。示波器上都是一条直线,看起来像“没波形”,其实是占空比跑到了极限。

4. 引脚被调试接口占用了

PA13和PA14默认是SWD调试引脚,如果你恰好把PWM通道映射到了这两个脚上,不关掉调试功能,引脚控制权根本交不出来。在CubeMX的SYS选项里把Debug模式改成Disable,问题往往就解决了。

5. 忘了调用启动函数

CubeMX生成的初始化代码只负责配置寄存器,不负责启动PWM输出。必须在主程序里显式调用HAL_TIM_PWM_Start,计数器才开始跑,通道输出才真正使能。这步漏掉,是现场调试中最高频的人为疏失。


本文凡亿教育原创文章,转载请注明来源!

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

电路之家

专注电子、科技分享,对电子领域深入剖解

开班信息