資源描述:
《STM32之PWM波形輸出配置復(fù)習(xí)總結(jié)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、STM32之PWM波形輸出配置總結(jié)1.TIMER分類STM32中一共有11個定時器,其中TIM6、TIM7是基本定時器;TIM2、TIM3、TIM4、TIM5是通用定時器;TIM1和TIM8是高級定時器,以及2個看門狗定時器和1個系統(tǒng)嘀嗒定時器。其中系統(tǒng)嘀嗒定時器是前文中所描述的SysTicko定時器計數(shù)器分辨率計數(shù)器類型預(yù)分頻系數(shù)請求DMA捕獲/比較通道互補(bǔ)輸出TIM116位向上、向下、向上/向下1-65536可以4有TIM8TIM216位向上、向下、向上/向下1-65536可以4沒有TIM3TIM4T
2、IM5TIM616位向上1-65536可以0沒有TIM7其中TIM1和TIM8是能夠產(chǎn)生3對PWM互補(bǔ)輸出,常用于三相電機(jī)的驅(qū)動,時鐘由APB2的輸岀產(chǎn)生oTIM2-TIM5是普通定時器,TIM6和TIM7是基本定時器,其時鐘由APB1輸出產(chǎn)生。2.PWM波形產(chǎn)生的原理通用定時器可以利用GPI0引腳進(jìn)行脈沖輸岀,在配置為比較輸岀、PWM輸出功能時,捕獲/比較寄存器TIMx_CCR被用作比較功能,下面把它簡稱為比較寄存器。舉例說明定時器的PWM輸出工作過程:若配置脈沖計數(shù)器TIMx_CNT為向上計數(shù),而重載
3、等存器TIMx_ARR被配置為N,即TIMx_CNT的當(dāng)前計數(shù)值數(shù)值X在TIMxCLK時鐘源的驅(qū)動下不斷累加,當(dāng)TIMx_CNT的數(shù)值X大于N時,會重置TIMx_CNT數(shù)值為0重新計數(shù)。而在TIMxCNT計數(shù)的同時,TIMxCNT的計數(shù)值X會與比較寄存器TIMx_CCR預(yù)先存儲了的數(shù)值A(chǔ)進(jìn)行比較,當(dāng)脈沖計數(shù)器TIMx_CNT的數(shù)值X小于比較等存器TIMx_CCR的值A(chǔ)時,輸岀高電平(或低電平),相反地,當(dāng)脈沖計數(shù)器的數(shù)值X大于或等于比較寄存器的值A(chǔ)時,輸岀低電平(或高電平)。如此循環(huán),得到的輸出脈沖周期就
4、為重載寄存器TIMx_ARR存儲的數(shù)值(N+1)乘以觸發(fā)脈沖的時鐘周期,其脈沖寬度則為比較寄存器TIMx_CCR的值A(chǔ)乘以觸發(fā)脈沖的時鐘周期,即輸出PWM的占空比為A/(N+1)o3.STM32產(chǎn)生PWM的配置方法1)配置GPIO口不是每一個I0引腳都可以直接使用于PWM輸出,下面是定時器的引腳重映像,其實就是引腳的復(fù)用功能選擇:復(fù)用功能映像TIM1^REMAP[1:0]=00I沒冇重映像)TIM1_REMAP[1:0]=01(部分重映像)TIM1_REMAP[1:0J=11僥全重映像)⑴TIM1ETRP
5、A12PE7TIM1CH1PA8PE9TIM1CH2PA9PE11TIM1CH3PA10PE13TIM1CH4PA11PE14TIM1BKINPB12⑵PA6PE15TIM1CH1NPB13⑵PA7PE8TIM1CH2NPB14⑵PBOPE10TIM1CH3NPB15⑵PB1PE12表3-1定時器1的引腳復(fù)用功能映像復(fù)用功能TIM2REMAP[1:0]=00(複有重影像)TIM2REMAP[1:0]=01(部分重影像)TIM2REMAP[1:0]二10(部分重影像1)TIM2REMAP[1:01=11(完
6、全重影像1)TIM2CHIETRPA0PA15PA0PA15TIM2CH2PA1PB3PA1PB3TIM2CH3PA2PB10TIM2CH4PA3PB11表3-2定時器2的引腳復(fù)用功能映像復(fù)用功能TIM3REMAP[1:01=00(複有重映射)TIM3_REMAP[l:0]=10(部分重映射)TIM3REMAP[1:01=11(完全重映射)TIM3CHIPA6PB4PC6TIM3CH2PA7PB5PC7TIM3CH3PBOPC8TIM3CH4PB1PC9表3-3定時器3的引腳復(fù)用功能映像復(fù)用功能TIM4R
7、EMAP二00(沒宥重映射)TIM4_REMAP=10(部分重映射)TIM4CH1PB6PD12TIM4CH2PB7PD13TIM4CH3PB8PD14TIM4CH4PB9PD15表3-4定時器4的引腳復(fù)用功能映像根據(jù)以上重映像表,我們使用定時器3的通道2作為PWM的輸出引腳,所以需要對PB5引腳進(jìn)行配置,對10口操作代碼:GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB
8、RCC_APB2Perip
9、h_AFIO,ENABLE);GPIO^PinRemapConfigCGPIO^PartialRemap^TIMS,ENABLE);!fJj*fI?JT*
10、j
11、
12、JI
13、/JiIfwIll
14、
15、IIJI*I*V*IIIII夕IGPIOInitStructure.GPIOPin=GPIOPin5;//「L(2GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO^InitStructure