PWM輸出實驗


一、宏定義加空格

如:#ifndef __LED_H

二、PWM

1、PWM是脈沖寬度調制,簡稱脈寬調制。

2、STM32 的定時器除了 TIM6 和 7。其他的定時器都可以用來產生 PWM 輸出。其中高級定

時器 TIM1 和 TIM8 可以同時產生多達 7 路的 PWM 輸出。
3、除了上一章介紹的幾個寄存器(ARR、PSC、CR1 等)外,我們還會用到 4 個寄存器(通用定時器則只需要 3 個),來控制 PWM 的輸
出。這四個寄存器分別是:捕獲/比較模式寄存器(TIMx_CCMR1/2)、捕獲/比較使能寄存器
(TIMx_CCER)、捕獲/比較寄存器(TIMx_CCR1~4)以及剎車和死區寄存器(TIMx_BDTR)。
4、捕獲/比較模式寄存器(TIMx_CCMR1/2),該寄存器總共有 2 個,TIMx _CCMR1
和 TIMx _CCMR2。TIMx_CCMR1 控制 CH1 和 2,而 TIMx_CCMR2 控制 CH3 和 4。
5、捕獲/比較使能寄存器(TIMx_CCER),該寄存器控制着各個輸入輸出通
道的開關。
6、捕獲/比較寄存器(TIMx_CCR1~4),該寄存器總共有 4 個,對應 4 個輸通道 CH1~4。

三、PWM輸入模式

該模式是輸入捕獲模式的一個特例,除下列區別外,操作與輸入捕獲模式相同:
● 兩個ICx信號被映射至同一個TIx輸入。
● 這2個ICx信號為邊沿有效,但是極性相反。
● 其中一個TIxFP信號被作為觸發輸入信號,而從模式控制器被配置成復位模式。
例如,你需要測量輸入到TI1上的PWM信號的長度(TIMx_CCR1寄存器)和占空比(TIMx_CCR2
寄存器),具體步驟如下(取決於CK_INT的頻率和預分頻器的值)
● 選擇TIMx_CCR1的有效輸入:置TIMx_CCMR1寄存器的CC1S=01(選中TI1)。
● 選擇TI1FP1的有效極性(用來捕獲數據到TIMx_CCR1中和清除計數器):置CC1P=0(上升沿有效)。
● 選擇TIMx_CCR2的有效輸入:置TIMx_CCMR1寄存器的CC2S=10(選中TI1)。
● 選擇TI1FP2的有效極性(捕獲數據到TIMx_CCR2):置CC2P=1(下降沿有效)。
● 選擇有效的觸發輸入信號:置TIMx_SMCR寄存器中的TS=101(選擇TI1FP1)。
● 配置從模式控制器為復位模式:置TIMx_SMCR中的SMS=100。
● 使能捕獲:置TIMx_CCER寄存器中CC1E=1且CC2E=1。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM