背景:由于项目需要,需要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翻转点: