背景:由於項目需要,需要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翻轉點: