PWM,脉冲宽度调制,是一种通过控制高电平持续时间(占空比)来模拟连续电压信号的办法
AAR寄存器:自动重装载寄存器,主要影响pwm的频率。简单来讲,cnt从0开始计数,计数到AAR设置的值就清0,也就是说AAR的值越大,PWM的频率就越低
CCR寄存器:捕获比较寄存器,在pwm模式1下,cnt小于CCR则输出高电平,cnt大于CCR则输出低电平。pwm模式2反之。它决定pwm的占空比。
相关代码
测试
逻辑分析仪抓到的波形
影子寄存器
在硬件寄存器层面中,分为一个表面寄存器和影子寄存器,在pwm波形输出的过程中,动态修改占空比,此时这个修改的值只是写进了表面寄存器,并没有影响到影子寄存器,当影子寄存器将当前一轮工作执行完毕后,表面寄存器才会把新值同步给影子寄存器,然后走新的一轮工作。其目的在于,消除毛刺:防止你在波形输出到一半时突然改参数,导致引脚电平发生畸变。保证输出的每一个波形都是完整、完美的。
在cubemx中,可以通过开启CCR的预装载功能(Preload Enable)来实现。