主控晶元:stm32f103rct6
程式設計軟體:keil5;sourseinsight4
串列埠除錯工具:xcom v2.5
在實際的使用過程中,我發現tim_cmd(timx, disable)
僅僅只是關閉了pwm的產生,而並不是將pwm波拉低,pwm的高低決定於關閉前一刻電平的高低,因此,想要得到恆定的高電平或者低電平,可以考慮2種方法:
①利用tim_setcomparex()//x為通道編號,例如ch3通道x為3
(x為通道編號,例如ch3通道x為3)將占空比調整到100%或者0%,這種方法無需關閉pwm,之後還可以調整占空比。
②關閉pwm並強制輸出高低電平,這種方法要關掉pwm,開啟pwm時需要重新使能通道以及pwm模式,但是不需要重新初始化tim。(此方法參考:stm32 pwm功能在關閉時gpio電平不確定的情況)
//關閉pwm並強制輸出低電平
tim_cmd
(tim4, disable)
;//關閉pwm
tim_forcedoc3config
(tim4, tim_forcedaction_inactive)
;//強制輸出低電平
//開啟tim4,ch3的pwm,並設定為pwm1模式
tim_selectocxm
(tim4, tim_channel_3, tim_ocmode_pwm1)
;tim_ccxcmd
(tim4, tim_channel_3, tim_ccx_enable)
;tim_cmd
(tim4, enable)
;
關閉PWM輸出之後的電平狀態
最近測試了stm32f103的pwm輸出,發現用關閉定時的方法關閉pwm之後狀態時高時低,不穩定,我想要的是低電平,後來用了庫函式tim ccxcmd tim4,tim channel 1,tim ccx disable 這個指令關閉後就一直是低電平了。在stm32f407裡面,用了hal庫,開始用...
STM8 關閉PWM輸出後的電平輸出問題解決
stm系列的微控制器pwm輸出如果被關斷比如用tim1 ctrlpwmoutputs進行停止輸出後,電平的高低處於不確定的狀態。他取決於 1.gpio初始化的特性 2.關斷那一刻時的電平 3.ccmr1的暫存器設定 因此要實現pwm關斷後的輸出確定比如輸出高電平必須 1.gpio的設定為推挽輸出或開...
STM32中關於高電平有效,低電平有效的一點理解
在學習stm32中的過程中,經常會遇到 高電平有效 低電平有效 等字眼,初看時很多時候就會從字面上理解,認為高電平有效的意思就是有效電平是高電平,低電平有效的意思就是有效電平是低電平的意思。而實際上,這樣的理解是有誤的。下面咱們以stm32的定時器中輸出比較通道為例 這幅圖實際上就是乙個pwm波產生...