基於STM32F030F4P9和STM32 CUBEMX 輸出PWM波形

STM32F030F4P9定時器功能比較豐富,在此記錄項目中使用其自動輸出PWM波形(頻率:50HZ)。CubeMX配置定時器如下圖說明。

 

在此定時器基礎時鐘為48MHZ,配置中不做分頻處理,預分頻係數為48,定時器計數器暫存器為20000,可求得周期為:

        T = ( ( 1 / (48Mhz / 48) ) * 20000) = 20ms

在PWM輸出配置選項中,改變Pulse可改變PWM的占空比。CH Polarity配置當計數器中的值小於Pulse時,輸出高電平,

CH Idle State配置PWM輸出空閑時的狀態,此處Reset為低電平狀態。

在程式中如果要動態改變PWM的占空比,只需改變Pulse值,但在cubeMX自動生成的庫中暫時沒有找到相關函數,
查手冊可知,通過改變CCRx暫存器可改變PWM的Pulse值,此處使用第三通道,所以可以改變定時器暫存器CCR3,

從而改變PWM的占空比,注意:CCR3暫存器值會在定時器發生更新時間時(注意配置中需要開啟自動重裝載暫存器使能位),

才會生效。例如改變占空比為800us/20ms:

        htim1.CCR3 = 800;   //占空比為 800us/20ms