stm32定时器输出移相PWM(非主从模式)

时间:2023-03-08 20:45:53

背景:由于项目需要,需要stm32输出任意相角度的PWM

前提知识:

1、stm32定时器的Tim,一般有多个OC。具体差别根据型号来定。

2、定时器的使能,理论上是多个通道同时使能

3、TIM_OCInitStructure.TIM_OCMode 的其中一个参数是 TIM_OCMode_Toggle。它的意思是计数达到比较值的时候,输出电平翻转

4、由第3点可知,移相占空比固定在了50%

5、定时器的计数方式只能为上升计数或者下降计数

6、下图为原理图

stm32定时器输出移相PWM(非主从模式)

(其实,只用设计每个OC的翻转点,就能转化为相应的移相角)

关键代码:

配置通道输出方式:

stm32定时器输出移相PWM(非主从模式)

配置ARR的值为2000,即一个周期计数值为2000:

stm32定时器输出移相PWM(非主从模式)

配置通道1翻转点:

stm32定时器输出移相PWM(非主从模式)

配置通道2翻转点:

stm32定时器输出移相PWM(非主从模式)

配置通道3翻转点:

stm32定时器输出移相PWM(非主从模式)