現在有STM32用戶要實現下面的需求。
上面時序圖中的1號波形來自某視頻處理相關器件,現在要根據1號時序產生2號時序波形。2號波形相比1號波形有90°的相移,二者頻率一樣。如何利用STM32TIMER實現2號輸出波形呢?
我們這里可以考慮使用TIMER的單脈沖模式來實現【當然完全可能有其它方式,此處不表】。下面我使用STM32L476Nucleo板【用哪個系列STM32開發板不重要,都能實現】來演示一下實現過程,重點在配置。
我用TIM3的CH1輸出PMW脈沖模擬上圖中1號波形,然后將其與TIM4的CH1相連,作為TIM4的觸發信號,觸發極性為上升沿。TIM4配置在觸發從模式,基于內部時鐘進行計數并工作在PWM單脈沖模式,使TIM4-CH2輸出的信號成為我們期望的2號波形。這個地方涉及的工作原理及細節頗多,如PWM輸出單脈沖模式、PWM1與PWM2的區別、重裝的特性等,這里我就不一一解釋、介紹了,真要啰嗦起來也會長篇大論。這么熱的天,即使我有耐心寫,你們未必有耐心看。我在下面把重點配置都清晰地釋放出來,真正關注的人結合這里的配置及實現結果,反過來消化原理或許更好。
TIM3、TIM4基于主從模式連接,TIM3的CH1輸出上沿啟動TIM4的工作。TIM4的CH2輸出是我們期望的輸出信號。
基于STM32L476Nucleo板的硬件連接關系圖:
上圖中PA6與PB6相連,PB7為TIM4-CH2的輸出腳。
下面分別是有關TIM3TIM4的參數配置:
上面就是全部TIMER配置,用戶代碼就超級簡單了。
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_2); //output signal
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); //Act as trigger signal
最后,我們就可以驗證實際結果了。下圖中,紅色波形為來自TIM3的觸發信號,對應開篇時序圖中的1號時序圖。下圖中的黑色波形為基于觸發信號的移相輸出,對應開篇時序圖中的2號線。
-
mcu
+關注
關注
146文章
17148瀏覽量
351199 -
脈沖
+關注
關注
20文章
889瀏覽量
95639 -
STM32
+關注
關注
2270文章
10900瀏覽量
356013
發布評論請先 登錄
相關推薦
關于RM0016單脈沖模式設置的問題求解
能不能講下下面的PWM生成(邊緣或中間對齊模式)和單脈沖模式輸出
COMP2在STM32L1上觸發單脈沖模式
STM32定時器單脈沖模式的相關資料分享
對單脈沖模式的介紹
請問如何生成可重復的單脈沖波形?
有什么方法可以在一種脈沖模式下啟動定時器嗎?
CH32V103基礎教程56-TIM-單脈沖模式
關于RM0016單脈沖模式設置問題
STM32定時器單脈沖模式及其應用

評論