STM32通用定时器PWM输出

脉冲宽度调制(Pulse Width Modulation),是利用微处理器的数字输出来对模拟电路进行控制的一种有效的技术。STM32的8个定时中,除了基本定时器TIM6与TIM7之外,其他的定时器都可以用来产生PWM输出。其中高级定时器TIM1和TIM8可以同时产生高达7路的PWM输出。通用定时器TIM2~TIM5可以同时产生多达4路PWM输出。

1.脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器确定频率、TIMx_CCRx寄存器确定占空比的信号,在TIMx_CCMRx寄存器中的OCxM位写入‘110’(PWM模式1)或‘111’(PWM模式2),能够独立设置每个OCx输出通道产生一路PWM,下图以通道1为例。设置TIMx_CCMRx寄存器OCxPE位以使能相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的ARPE位,(在向上计数或者中心对称模式中)使能自动重装载的预装载寄存器。OCx的极性可以通过软件在TIMx_CCER寄存器中的CCxP位设置,置0为高电平有效。TIMx_CCER寄存器中的CCxE位控制OCx输出使能,置0时关闭。

STM32通用定时器PWM输出

2.向上计数的配置

STM32通用定时器PWM输出

3.相关寄存器描述    

    1.通过对OC1M[2:0]的配置来设置PWM的模式,最终作用于输出模式控制器。

STM32通用定时器PWM输出

STM32通用定时器PWM输出

    2.捕获/比较使能寄存器

STM32通用定时器PWM输出

STM32通用定时器PWM输出

    3.捕获/比较寄存器TIMx_CCR1~4

    该寄存器共有4个,以TIMx_CCR1为例。在输出模式下,该寄存器的值与CNT的值比较,根据比较结果产生相应动作。利用这一点,我们通过修改这个寄存器的值,就可以控制PWM的输出脉宽。

STM32通用定时器PWM输出