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.Instance->CCR3 = 800; //占空比為 800us/20ms
