其他分享
首页 > 其他分享> > PWM脉宽调制

PWM脉宽调制

作者:互联网

什么是PWM

PWM工作原理

SMT32F1系列共有8个定时器:

STM32的每个通用定时器都有独立的4个通道可以用来作为:输入捕获、输出比较、PWM输出、单脉冲模式输出等。

STM32的定时器除了TIM6和TIM7(基本定时器)之外,其他的定时器都可以产生PWM输出。其中,高级定时器TIM1、TIM8可以同时产生7路PWM输出

原理讲解:

下图为向上计数模式:

PWM的一个周期

总结:

每个定时器有四个通道,每一个通道都有一个捕获比较寄存器,

将寄存器值和计数器值比较,通过比较结果输出高低电平,便可以实现脉冲宽度调制模式(PWM信号)

TIMx_ARR寄存器确定PWM频率,

TIMx_CCRx寄存器确定占空比

详解:

若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR配置为N,即TIMx_CNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_CNT数值为0重新计数。
而在TIMxCNT计数的同时,TIMxCNT的计数值X会与比较寄存器TIMx_CCR预先存储了的数值A进行比较,当脉冲计数器TIMx_CNT的数值X小于比较寄存器TIMx_CCR的值A时,输出高电平(或低电平),相反地,当脉冲计数器的数值X大于或等于比较寄存器的值A时,输出低电平(或高电平)。
如此循环,得到的输出脉冲周期就为重载寄存器TIMx_ARR存储的数值(N+1)乘以触发脉冲的时钟周期,其脉冲宽度则为比较寄存器TIMx_CCR的值A乘以触发脉冲的时钟周期,即输出PWM的占空比为A/(N+1)。

PWM的工作模式:

设置寄存器TIMx_CCMR1的OC1M[2:0]位来确定PWM的输出模式:

标签:脉宽调制,CNT,定时器,TIMx,计数器,寄存器,PWM
来源: https://www.cnblogs.com/EmbeddedJiangkai/p/15773336.html