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

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

前提知识:

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

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

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

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

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

                 6、下图为原理图

                      

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

关键代码:

    配置通道输出方式:

       

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

         

   配置通道1翻转点:

      

   配置通道2翻转点:

    

  配置通道3翻转点:

       

原文地址:https://www.cnblogs.com/cjyc/p/10780547.html