STM32__定時(shí)器與_PWM_快速使用入門.doc_第1頁
STM32__定時(shí)器與_PWM_快速使用入門.doc_第2頁
STM32__定時(shí)器與_PWM_快速使用入門.doc_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

STM32定時(shí)器與PWM快速使用入門要求:在萬利的開發(fā)板EK-STM32F上產(chǎn)生周期為1秒,占空比分別為5010的PWM并且點(diǎn)亮板上的LD1,LD2燈閃爍。做法很簡單。STM32的PWM是由定時(shí)器來產(chǎn)生的??梢钥闯?。定時(shí)器3的通道1至4在GPIO端口的映像。如果是完全映射。各通道的連接引腳如下:CH1=PC6,CH2=PC7,CH3=PC8,CH4=PC9這樣,剛好與板上的LD1,LD2燈符合,因?yàn)長D1連接到PC7,LD2連接到PC6引腳。關(guān)于PWM一些知識.STM32的TIMx是TIMx_ARR寄存器確定頻率(周期)、由TIMx_CCRx寄存器確定占空比的信號。使用定時(shí)器3。而TIM2、3、4的時(shí)鐘源是APB1即是PCLK1(APB1對應(yīng)PCLK1)PCLK1=APB1=HCLK/2=SYSCLK/2=36MHZ(36,000,000HZ)但是注意:倍頻器會自動倍2,即是【72MHZ】!代碼如下:voidSTM32_PWM_GPIO_Configuration(void)/11:完全映像STM32_Afio_Regs->mapr.bit.TIM3_REMAP=3;/LD1=P7LD2=PC6/*GPIOAConfiguration:(PC6PC7)TIM3channel1and2asalternatefunctionpush-pull*/STM32_Gpioc_Regs->crl.bit.CNF6=Output_Af_push_pull;/PC.06復(fù)用功能推挽輸出模式STM32_Gpioc_Regs->crl.bit.MODE6=Output_Mode_50mhz;/PC.06輸出模式,最大速度50MHzSTM32_Gpioc_Regs->crl.bit.CNF7=Output_Af_push_pull;/PC.07復(fù)用功能推挽輸出模式STM32_Gpioc_Regs->crl.bit.MODE7=Output_Mode_50mhz;/PC.07輸出模式,最大速度50MHz/endsubvoidSTM32_TIM3_Configuration(void)/TIM_DeInit(TIM3);/復(fù)位TIM3定時(shí)器STM32_Rcc_Regs->apb1rstr.all|=RCC_TIM3RST;STM32_Rcc_Regs->apb1rstr.all&=RCC_TIM3RST;/時(shí)鐘使能STM32_Rcc_Regs->apb1enr.all|=RCC_TIM3EN;/*TIM3baseconfiguration*/TIM_TimeBaseStructure.TIM_Period=9999;/TIM_TimeBaseStructure.TIM_Prescaler=7200;/TIM_TimeBaseStructure.TIM_ClockDivision=0x0;/TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);STM32_Tim3_Regs->arr.all=9999;/定時(shí)周期,PWM頻率!10毫秒*100=1秒STM32_Tim3_Regs->psc.all=720;/7200分頻72MHZ/72,0072,000,000/72,00=10,000STM32_Tim3_Regs->cr1.bit.CKD=0;/時(shí)鐘分頻因子STM32_Tim3_Regs->cr1.bit.DIR=0;/0:計(jì)數(shù)器向上計(jì)數(shù)/*ClearTIM3updatependingflag清除TIM3溢出中斷標(biāo)志*/TIM_ClearFlag(TIM3,TIM_FLAG_Update);STM32_Tim3_Regs->sr.bit.UIF=0;/更新中斷標(biāo)記由軟件清0,例如當(dāng)上溢或下溢時(shí),軟件對CNT重新初始化/*PWM1Modeconfiguration:Channel1Channel2*/TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;/TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;/TIM_OCInitStructure.TIM_Pulse=CCR1_Val;/TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;/TIM_OC1Init(TIM3,&TIM_OCInitStructure);/timer3的通道1是PC6引腳,AFIO完全映射STM32_Tim3_Regs->ccer.bit.CC1P=0;/輸入/捕獲1輸出極性0:OC1高電平有效1:OC1低電平有效STM32_Tim3_Regs->ccer.bit.CC1E=1;/輸入/捕獲1輸出使能1:開啟OC1信號輸出到對應(yīng)的輸出引腳。STM32_Tim3_Regs->ccer.bit.CC2P=0;/輸入/捕獲2輸出極性0:OC1高電平有效1:OC1低電平有效STM32_Tim3_Regs->ccer.bit.CC2E=1;/輸入/捕獲2輸出使能1:開啟OC2信號輸出到對應(yīng)的輸出引腳。STM32_Tim3_Regs->ccmr1.ou_bit.CC1S=0;/00:輸出比較1通道1被配置為輸出STM32_Tim3_Regs->ccmr1.ou_bit.CC2S=0;/00:輸出比較2通道2被配置為輸出STM32_Tim3_Regs->ccmr1.ou_bit.OC1M=6;/0110:PWM模式1STM32_Tim3_Regs->ccmr1.ou_bit.OC2M=6;/0110:PWM模式1STM32_Tim3_Regs->ccr1.all=5000;/占空比50STM32_Tim3_Regs->ccr2.all=1000;/10/TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);STM32_Tim3_Regs->ccmr1.ou_bit.OC1PE=1;/OC1PE:輸出比較1預(yù)裝載使能1:開啟TIMx_CCR1寄存器的預(yù)裝載功能STM32_Tim3_Regs->ccmr1.ou_bit.OC2PE=1;/OC1PE:輸出比較2預(yù)裝載使能1:開啟TIMx_CCR2寄存器的預(yù)裝載功能/TIM_ARRPreloadConfig(TIM3,ENABLE);STM32_Tim3_Regs->cr1.bit.ARPE=1;/7自動重裝載預(yù)裝載允許位0:TIM1_ARR寄存器沒有緩沖/TIM3enablecounter/TIM_Cmd(TIM3,ENABL

溫馨提示

  • 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

提交評論