一、宏定義加空格
如:#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)、捕獲/比較使能寄存器
4、捕獲/比較模式寄存器(TIMx_CCMR1/2),該寄存器總共有 2 個,TIMx _CCMR1
(TIMx_CCER)、捕獲/比較寄存器(TIMx_CCR1~4)以及剎車和死區寄存器(TIMx_BDTR)。
和 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。
