關於stm32輸出比較不同模式的分析
輸出比較模式總共有6種。分別是:
TIM_OCMode_Timing
輸出比較時間模式 (輸出引腳凍結無效)TIM_OCMode_Active
輸出比較主動模式 (匹配時設置輸出引腳爲有效電平,當計數值爲比較/捕獲寄存器值相同時,強制輸出爲高電平TIM_OCMode_Inactive
輸出比較非主動模式 (匹配時設置輸出引腳爲無效電平,當計數值爲比較/捕獲寄存器值相同時,強制輸出爲低電平)TIM_OCMode_Toggle
輸出比較翻轉觸發模式(當計數值與比較/捕獲寄存器值相同時,翻轉輸出引腳的電平)TIM_OCMode_PWM1
向上計數時,當TIMx_CNT < TIMx_CCR時,輸出電平有效,否則爲無效向下計數時,當TIMx_CNT > TIMx_CCR時,輸出電平無效,否則爲有效。TIM_OCMode_PWM2
向上計數時,當TIMx_CNT > TIMx_CCR時,輸出電平有效,否則爲無效向下計數時,當TIMx_CNT < TIMx_CCR時,輸出電平無效,否則爲有效。
其中,PWM是最重要也是最常用的模式,很多資料分析的很透徹,這裏不再贅述。
輸出比較時間模式的輸出引腳會被凍結,此模式通常用於產生普通的定時器中斷。
其餘幾個模式中,當“當計數值爲比較/捕獲寄存器值相同時” 即CCRX=CNT時,會引發後面所說的事件。而TIM_OCMode_Active與TIM_OCMode_Inactive僅觸發一次,之後就會出現一直爲高電平或者低電平。TIM_OCMode_Toggle會每次在CCRX=CNT時都翻轉,所以也形成一個PWM。由於一個週期只翻轉一次,佔空比只會是百分之五十,週期爲參數period的兩倍,頻率爲1/2。