有人想使用STM32G474芯片做Half模式的PWM輸出,發現有點問題,明明配置了定時器A的兩路輸出, 結果總是只有1路輸出。這里簡單演示下實現過程。【順便提醒下,并非STM32G4全系列都內置高精度定時器】
所謂Half模式就是指硬件基于給定的計數周期值自動輸出占空比為50%的方波,用戶無須對比較寄存器的值再進行設置,這里硬件默認使用比較寄存器1【cmp1】,硬件自動將用戶設置的PERIOD值的一半賦給CMP1寄存器。換言之,用戶此時無法對CMP1寄存器進行賦值。
另外,對于輸出配置必須使用CMP1比較事件和定時器的Period周期事件。
關于HALF模式的原理就介紹到這里,下面就使用STM32G474RE的Nucleo開發板演示下實現過程,主要是軟件配置,硬件沒啥要處理的,有塊開發板就行。
先使用STM32CubeMx進行配置【其它RCC等的配置此處就不說了】。
下面截圖橙色框中的配置是必須的,有關定時器的時間參數我隨便配置的,畢竟這里只是演示一下功能。
這里的比較單元1必須使能,使能即可,無須參數配置。
下面關于TA1/TA2輸出的配置,也是必須的關鍵配置。
至于定時器的其它配置,保持默認即可。配置完成后,生成初始化代碼,然后加入合適的用戶代碼。
HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);
HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);
HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA2);
因為我把TA1/TA2極性選擇是相反的,所有此時輸出的是兩路互補波形,如果二者極性選擇一致,輸出的就是兩路占空比為50%的相同波形。
OK,該話題就分享到此,愿君有所獲。
責任編輯:haq
-
STM32
+關注
關注
2288文章
10999瀏覽量
362033 -
定時器
+關注
關注
23文章
3284瀏覽量
117072
原文標題:STM32G4高精度定時器的HALF輸出模式示例
文章出處:【微信號:aidanpianji,微信公眾號:單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
STM32 HRTIM Burst輸出模式應用演示

STM32G474的DAC4無輸出怎么解決?
STM32G474的DAC4無輸出怎么解決?
stm32g474 hrtim中怎么使用dual channel DAC trigger?
如何利用STM32G474芯片的高精度定時器實現兩對互補輸出

STM32G474逐波限流保護的實現
工程師筆記|STM32G474 HRTIME PWM 丟波問題分析與解決
實戰經驗 | STM32G474 中 Triggered-half 模式的實現

評論