|
本章介紹STM32定時器PWM模式的使用方法。STM32的定時器有多路PWM輸出通道,可以配置多路同時輸出不同占空比的PWM波。前期準備: STM32硬件電路板及仿真器(以STM32F072C8單片機為例) Keil v5以上版本(MDK-ARM)
首先新建工程后,配置系統(tǒng)時鐘為48MHz(具體步驟參考之前的文章)。配置TIM3的時鐘為內(nèi)部時鐘,Channel1和Channel2兩通道為PWM輸出模式,配置完后可以看到相應的GPIO也會顯示為TIM3_CH1和TIM3_CH2。TIM3基本定時參數(shù)的設(shè)置可參考上一篇文章STM32CubeMx之TIM定時中斷。假設(shè)設(shè)置CH1的PWM頻率為10kHZ,占空比為30%,CH2的頻率為10kHz,占空比為40%,則設(shè)置參數(shù)如下圖。
mlu5ntycr1264048946136.jpg (201.35 KB, 下載次數(shù): 1)
下載附件
保存到相冊
mlu5ntycr1264048946136.jpg
2024-10-5 23:00 上傳
PWM頻率 = TIM分頻后的頻率 / 計數(shù)周期 = 48MHz / 4800=10kHz。PWM占空比 = Pluse / Counter Period。
CH1和CH2可以單獨設(shè)置。 PWM模式有mode1和mode2兩種模式,其區(qū)別在于:PWM mode1 計數(shù)值大于比較值,輸出有效電平,否則輸出無效電平。
PWM mode2 計數(shù)值大于比較值,輸出無效電平,否則輸出有效電平。
其中有效電平即為CH Polarity所設(shè)置的電平。
需要說明的是有的定時器的輸出通道可以影視到不同的IO口上,用戶可以自己選擇,上圖中選擇TIM3的通道1和通道2后,默認的PB3和PB4端口被設(shè)置為TIM3_CH1和TIM3_CH2功能。實際上,TIM3的通道1和通道2也可以映射到PA6和PA7上,用戶可以手動更改。
o0ht1ubxlms64048946237.png (57.63 KB, 下載次數(shù): 1)
下載附件
保存到相冊
o0ht1ubxlms64048946237.png
2024-10-5 23:00 上傳
設(shè)置完成后點擊 Generate Code生成代碼。可以看到TIM3的初始化已經(jīng)自動生成,在后面添加PWM啟動的代碼即可,如下圖。
q0zaq3ypnbe64048946337.png (26.81 KB, 下載次數(shù): 1)
下載附件
保存到相冊
q0zaq3ypnbe64048946337.png
2024-10-5 23:00 上傳
如果需要改變PWM的頻率和占空比,調(diào)用以下函數(shù)。
b1ryxfhl2hd64048946437.png (13.77 KB, 下載次數(shù): 0)
下載附件
保存到相冊
b1ryxfhl2hd64048946437.png
2024-10-5 23:00 上傳
編譯程序后,下載到電路板,用示波器觀察相應引腳的波形。
vkbxlndbkuq64048946537.png (32.93 KB, 下載次數(shù): 1)
下載附件
保存到相冊
vkbxlndbkuq64048946537.png
2024-10-5 23:00 上傳
可以看到頻率是10.080kHz(由于使用的內(nèi)部RC時鐘,有一定誤差),占空比39.999%,說明程序沒有問題。 |
|