MCU:STM32F334C8T6
PWM即脉宽调制,可以用来驱动电机,驱动全桥电路等,用过STM32的知道,用它的定时器可以很容易实现PWM输出,使用高级定时器的TIMx_CHy和TIMx_CHyN可以轻易实现互补PWM(complementary PWM)波形的输出。
高级定时器资源有限,本文利用通用定时器(General-purpose timers)实现互补PWM输出,在高级定时器资源不够时不失为一个好方法。
STM32的定时器PWM有两种模式:PWM mode 1和PWM mode 2
工作原理:
PWM mode 1 - In upcounting, channel 1 is active as long as TIMx_CNT<TIMx_CCR1 else inactive.
In downcounting, channel 1 is inactive (OC1REF=‘0’) as long as TIMx_CNT>TIMx_CCR1 else active (OC1REF=’1’).
PWM mode 2 - In upcounting, channel 1 is inactive as long as TIMx_CNT<TIMx_CCR1 else active.
In downcounting, channel 1 is active as long as TIMx_CNT>TIMx_CCR1 else inactive.
官方手册对channel 1 的说明,其他channel类似,考虑向上计数模式
方法一:
假设高电平为有效电平,即高电平为active,使用定时器3
PWM mode 1:TIM3_CNT<TIM3_CCR1 输出高,TIM3_CNT>TIM3_CCR1 输出低
PWM mode 2:TIM3_CNT<TIM3_CCR1 输出低,TIM3_CNT>TIM3_CCR1 输出高
可以