有人想使用STM32G474芯片做Half模式的PWM輸出,發(fā)現(xiàn)有點(diǎn)問(wèn)題,明明配置了定時(shí)器A的兩路輸出, 結(jié)果總是只有1路輸出。這里簡(jiǎn)單演示下實(shí)現(xiàn)過(guò)程?!卷槺闾嵝严?,并非STM32G4全系列都內(nèi)置高精度定時(shí)器】
所謂Half模式就是指硬件基于給定的計(jì)數(shù)周期值自動(dòng)輸出占空比為50%的方波,用戶(hù)無(wú)須對(duì)比較寄存器的值再進(jìn)行設(shè)置,這里硬件默認(rèn)使用比較寄存器1【cmp1】,硬件自動(dòng)將用戶(hù)設(shè)置的PERIOD值的一半賦給CMP1寄存器。換言之,用戶(hù)此時(shí)無(wú)法對(duì)CMP1寄存器進(jìn)行賦值。
另外,對(duì)于輸出配置必須使用CMP1比較事件和定時(shí)器的Period周期事件。
關(guān)于HALF模式的原理就介紹到這里,下面就使用STM32G474RE的Nucleo開(kāi)發(fā)板演示下實(shí)現(xiàn)過(guò)程,主要是軟件配置,硬件沒(méi)啥要處理的,有塊開(kāi)發(fā)板就行。
先使用STM32CubeMx進(jìn)行配置【其它RCC等的配置此處就不說(shuō)了】。
下面截圖橙色框中的配置是必須的,有關(guān)定時(shí)器的時(shí)間參數(shù)我隨便配置的,畢竟這里只是演示一下功能。
這里的比較單元1必須使能,使能即可,無(wú)須參數(shù)配置。
下面關(guān)于TA1/TA2輸出的配置,也是必須的關(guān)鍵配置。
至于定時(shí)器的其它配置,保持默認(rèn)即可。配置完成后,生成初始化代碼,然后加入合適的用戶(hù)代碼。
HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);
HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);
HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA2);
因?yàn)槲野裈A1/TA2極性選擇是相反的,所有此時(shí)輸出的是兩路互補(bǔ)波形,如果二者極性選擇一致,輸出的就是兩路占空比為50%的相同波形。
OK,該話題就分享到此,愿君有所獲。
責(zé)任編輯:haq
-
STM32
+關(guān)注
關(guān)注
2270文章
10915瀏覽量
356758 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3254瀏覽量
115072
原文標(biāo)題:STM32G4高精度定時(shí)器的HALF輸出模式示例
文章出處:【微信號(hào):aidanpianji,微信公眾號(hào):?jiǎn)纹瑱C(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論