STM32中關於高電平有效,低電平有效的一點理解

2021-08-15 15:17:43 字數 830 閱讀 5848

在學習stm32中的過程中,經常會遇到「高電平有效」,「低電平有效」等字眼,初看時很多時候就會從字面上理解,認為高電平有效的意思就是有效電平是高電平,低電平有效的意思就是有效電平是低電平的意思。而實際上,這樣的理解是有誤的。下面咱們以stm32的定時器中輸出比較通道為例:

這幅圖實際上就是乙個pwm波產生的過程,對定時器不了解的可以去查閱相關手冊,現在我們先看圖中標號1的輸出模式控制器,這裡模式是指pwm模式,他的意思就是可以通過配置暫存器timx_ccmr1的oc1m兩位,來選擇pwm的模式,但是關於模式選擇,手冊中有這樣一句話:在向下計數時,一旦timx_cnt>timx_ccr1時通道1為無效電平(oc1ref=0),否則為有效電平(oc1ref=1)

。紅色字型告訴我們:ocref為無效電平時為低電平,ocref為有效電平時就是高電平。

再看標號2: 它的作用是選擇輸出極性。如果timx_ccer的cc1p位為0則高電平有效,否則低電平有效。這個高電平有效是什麼意思呢?就是對於選擇器來說,高電平有效,如果ocref為高電平,那麼這個選擇器的門就會開啟,讓該訊號進入 ,並「啟用」該選擇器, 之後選擇器才會產生訊號來啟用後面的輸出使能電路驅動oc1,讓其在oc1上產生有效電平(也就是oc1上產生高電平)。

通過上面的分析機會發現,高電平有效意思是說,若訊號為高電平,那麼對相應的控制器來說才有效,才能啟用該控制器的相關功能。

無效電平:低電平

高電平有效:高電平可以使能相應功能

低電平有效:低電平可以使能相應功能

stm32普通IO口捕獲PWM的高電平

思路 普通io口配置上公升沿下降沿觸發中斷,然後配置乙個定時器 週期大於等於pwm週期 在io口中斷中讀取定時器計數。定時器不需要配置中斷 void tim3 configuration void io口配置 gpio inittypedef gpio initstructure exti init...

stm32中斷無電平觸發的解決辦法

這幾天在用stm32讀取fpga中fifo裡的資料,遇到了不少的問題。這裡就其中的乙個問題寫寫,比較簡單,就當做是打發一下時間。問題就是,stm32的中斷沒有電平觸發方式。stm32讀取fifo中的資料,當fifo資料非空時給stm32中斷訊號 將對應的中斷線拉高 低,這時stm32取fifo中資料...

STM32中NVIC Init導致的上電程式不執行

最近使用在stm32上使用ucosii的執行多工時候遇到乙個奇怪問題,我用到了4個串列埠,隨著程式增大,出現了上電後不執行的情況,我用乙個led閃爍指示執行,使用stlink進行debug沒有問題,但重新上電執行就不行,硬體復位了也不行,排除了硬體問題 指標跑飛 任務堆疊溢位 卡死在某死迴圈 等可能...