之PWM波形輸出配置總結(jié)_第1頁
之PWM波形輸出配置總結(jié)_第2頁
之PWM波形輸出配置總結(jié)_第3頁
之PWM波形輸出配置總結(jié)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、STM32之PWM波形輸出配置總結(jié)1. TIMER分類STM32中一共有11個(gè)定時(shí)器,其中TIM6、TIM7是基本定時(shí)器;TIM2、TIM3、TIM4、TIM5是通用定時(shí)器;TIM1和TIM8是高級定時(shí)器,以及2個(gè)看門狗定時(shí)器和1個(gè)系統(tǒng)嘀嗒定時(shí)器。其中系統(tǒng)嘀嗒定時(shí)器是前文中所描述的SysTick。定時(shí)器計(jì)數(shù)器分辨率計(jì)數(shù)器類型預(yù)分頻系數(shù)請求DMA 捕獲/比較通道互補(bǔ)輸出TIM116位向上、向下、向上/向下1-65536可以4有TIM8TIM216位向上、向下、向上/向下1-65536可以4沒有TIM3TIM4TIM5TIM616位向上1-65536 可以0沒有TIM7其中TIM1和TIM8是能夠

2、產(chǎn)生3對PWM互補(bǔ)輸出,常用于三相電機(jī)的驅(qū)動(dòng),時(shí)鐘由APB2的輸出產(chǎn)生。TIM2-TIM5是普通定時(shí)器,TIM6和TIM7是基本定時(shí)器,其時(shí)鐘由APB1輸出產(chǎn)生。2. PWM波形產(chǎn)生的原理通用定時(shí)器可以利用GPIO引腳進(jìn)行脈沖輸出,在配置為比較輸出、PWM輸出功能時(shí),捕獲/比較寄存器TIMx_CCR被用作比較功能,下面把它簡稱為比較寄存器。舉例說明定時(shí)器的PWM輸出工作過程:若配置脈沖計(jì)數(shù)器TIMx_CNT為向上計(jì)數(shù),而重載寄存器TIMx_ARR被配置為N,即TIMx_CNT的當(dāng)前計(jì)數(shù)值數(shù)值X在TIMxCLK時(shí)鐘源的驅(qū)動(dòng)下不斷累加,當(dāng)TIMx_CNT的數(shù)值X大于N時(shí),會重置TIMx_CNT數(shù)值

3、為0重新計(jì)數(shù)。而在TIMxCNT計(jì)數(shù)的同時(shí),TIMxCNT的計(jì)數(shù)值X會與比較寄存器TIMx_CCR預(yù)先存儲了的數(shù)值A(chǔ)進(jìn)行比較,當(dāng)脈沖計(jì)數(shù)器TIMx_CNT的數(shù)值X小于比較寄存器TIMx_CCR的值A(chǔ)時(shí),輸出高電平(或低電平),相反地,當(dāng)脈沖計(jì)數(shù)器的數(shù)值X大于或等于比較寄存器的值A(chǔ)時(shí),輸出低電平(或高電平)。如此循環(huán),得到的輸出脈沖周期就為重載寄存器TIMx_ARR存儲的數(shù)值(N+1)乘以觸發(fā)脈沖的時(shí)鐘周期,其脈沖寬度則為比較寄存器TIMx_CCR的值A(chǔ)乘以觸發(fā)脈沖的時(shí)鐘周期,即輸出PWM的占空比為 A/(N+1) 。3. STM32產(chǎn)生PWM的配置方法1) 配置GPIO口不是每一個(gè)IO引腳都可

4、以直接使用于PWM輸出,下面是定時(shí)器的引腳重映像,其實(shí)就是引腳的復(fù)用功能選擇:表3-1 定時(shí)器1的引腳復(fù)用功能映像表3-2 定時(shí)器2的引腳復(fù)用功能映像表3-3 定時(shí)器3的引腳復(fù)用功能映像表3-4 定時(shí)器4的引腳復(fù)用功能映像根據(jù)以上重映像表,我們使用定時(shí)器3的通道2作為PWM的輸出引腳,所以需要對PB5引腳進(jìn)行配置,對IO口操作代碼:GPIO_InitTypeDef GPIO_InitStructure; /定義結(jié)構(gòu)體RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); /使能GPIO外設(shè)和AFIO

5、復(fù)用功能模塊時(shí)鐘GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); /選擇Timer3部分重映像 /選擇定時(shí)器3的通道2作為PWM的輸出引腳TIM3_CH2->PB5 GPIOB.5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; /TIM_CH2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /復(fù)用推挽功能GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPI

6、O_InitStructure); /初始化引腳2) 初始化定時(shí)器TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /定義初始化結(jié)構(gòu)體RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /使能定時(shí)器3時(shí)鐘/初始化TIM3TIM_TimeBaseStructure.TIM_Period = arr; /自動(dòng)重裝載寄存器的值TIM_TimeBaseStructure.TIM_Prescaler = psc; /TIMX預(yù)分頻的值TIM_TimeBaseStructure.TIM_ClockDivisi

7、on = 0; /時(shí)鐘分割TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /向上計(jì)數(shù)TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /根據(jù)以上功能對定時(shí)器進(jìn)行初始化3) 設(shè)置TIM3_CH2的PWM模式、使能TIM3的CH2輸出TIM_OCInitTypeDef TIM_OCInitStructure; /定義結(jié)構(gòu)體TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; /選擇定時(shí)器模式,TIM脈沖寬度調(diào)制模式2TIM_OC

8、InitStructure.TIM_OutputState = TIM_OutputState_Enable; /比較輸出使能TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; /輸出比較極性低TIM_OC2Init(TIM3, &TIM_OCInitStructure); /根據(jù)結(jié)構(gòu)體信息進(jìn)行初始化TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); /使能定時(shí)器TIM2在CCR2上的預(yù)裝載值4) 使能定時(shí)器3TIM_Cmd(TIM3, ENABLE); /使能定時(shí)器TIM3經(jīng)過以上的操作,定時(shí)器3的第二通道已經(jīng)可以正常工作并輸出PWM波了,只是其占空比和頻率都是固定的,我們可以通過改變TIM3_CCR2,則可以控制它的占空比。修改占空比的函數(shù)為:TIM_SetCompare2(TIM3,n); n不同,占空比不同。5) 設(shè)定PWM波形的占空比int main(void) TIM3_PWM_Init(9999, 143); /頻率

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論