STM32學(xué)習(xí)筆記PWM波形輸出_第1頁
STM32學(xué)習(xí)筆記PWM波形輸出_第2頁
STM32學(xué)習(xí)筆記PWM波形輸出_第3頁
STM32學(xué)習(xí)筆記PWM波形輸出_第4頁
STM32學(xué)習(xí)筆記PWM波形輸出_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、調(diào)試芯片:STM32F103C8T6外部晶振:8MHz功能介紹:使用 Timer3實(shí)現(xiàn)兩路(可四路)PWM波形的輸出代碼如下:初始化:系統(tǒng)時鐘初始化,GPIO端口初始化,Timer初始化系統(tǒng)時鐘初始化:1. /* 配置系統(tǒng)時鐘為72M */2. Systemlnit();GPIO端口初始化:1.2.*函數(shù)名:void GPIO_Config( void )3. *描述4. *輸入:配置復(fù)用輸出PWM時用到的I/O:無5.* 輸岀6.* 調(diào)用:無:main()調(diào)用7.*/8. void GPIO_Config( void )9. 10. GPIOnitTypeDef GPIO_InitStruc

2、ture;11.11. /* GPIOA and GPIOB clock enable */12. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);14.13. /*GPIOA Configuration: TIM3 channel 1 and 2 as alternate functionpush-pull */14. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;/復(fù)用推15. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

3、挽輸出16. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MH z;17. GPIO_Init(GPIOA, & GPIO_InitStructure);18. Timer初始化:1.2. * 函數(shù)名:void TIM3_Config(void)3. * 描述 :配置TIM3輸出的PWM信號的模式4.* CH1:輸出 T=2.5ms(f=1/2.5ms=400Hz) D=0.6的PWM波(高電平在前,低電平在后)CH2:輸出 T=2.5ms(f=1/2.5ms=400Hz) D=0.4的PWM波(高電平在后,低電5.6.7.8.9.10.11.12

4、.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.平在前)* 步驟一:通過 T和TIMxCLK 的時鐘源確定 TIM_Period 和TIM_Prescaler* T=(TIM_Period+1)* (T IM_Prescale 葉1)/TIMxCLK=2.5ms* 因?yàn)?TIM_Period1,即 TIM_Prescaler=2* 所以 TIM_Period=59999=0xEA5F* 步驟二:根據(jù)TIM_Period 的值,高低電平的先后 D,確定CCR和TIM_OCPolarity

5、* CH1:因?yàn)镈=0.6,先高后低;* 所以CCR1= (T IM_Period+1)* D=36000;TIM_OCPolarity=TIM_OCPolarity_High* CH2:因?yàn)镈=0.4,先高后低;* 所以CCR1= (TIM_Period+1)* (1-D)=36000;TIM_OCPolarity=TIM_OCPolarity_Low*步驟三:基礎(chǔ)寄存器初始化*步驟四:通道寄存器初始化*步驟五:使能TIM3重載寄存器ARR*步驟六:使能TIM3*輸入:無*輸出:無*調(diào)用:main()調(diào)用*/void TIM3_Config( void )TIM_TimeBaselnitTy

6、peDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;/* PWM信號電平跳變值*/u16 CCR1= 36000;u16 CCR2= 36000;/*PCLK1 經(jīng)過2倍頻后作為TIM3的時鐘源等于 72MHz*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);/* Time base configuration */TIM_TimeBaseStructure.TIM_Period =0xEA5F;TIM_TimeBaseStructure.TIM_Presc

7、aler = 2;/設(shè)置預(yù)分頻:預(yù)分頻 =2,即為72/3=24MHzTIM_TimeBaseStructure.TIM_ClockDivision = 0;/設(shè)置時鐘分頻系數(shù):不分頻TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;/向上計數(shù)溢出模式TIM_TimeBaseInit (TIM3, & TIM_TimeBaseStructure);/* PWM1 Mode configuration: Channel1 */TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;/配置

8、為PWM模式1TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = CCR1;/設(shè)置跳變值,當(dāng)計數(shù)器計數(shù)到這個值時,電平發(fā)生跳變TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_High;/當(dāng)定時器計數(shù)值小于 CCR1時為高電平TIM_OC1lnit(TIM3, &TIM_OCInitStructure);/使能通道1TIM_OC1PreloadConfig (TIM3, TIM_OCPreload_Enable

9、);/* PWM1 Mode configuration: Channel2 */TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = CCR2;/設(shè)置通道2的電平跳變值,輸出另外一個占空比的PWMTIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;/當(dāng)定時器計數(shù)值小于 CCR2時為低電平TIM_OC2Init (TIM3, &TIM_OCInitStructure);/使能通道2TIM_OC2PreloadConfig (TIM3, TIM_OCPreload_Enable);TIM_ARRPreloadConfig (TIM3, ENABLE);/使能TIM3重載寄存器 ARR/* TIM3 enable counter */TIM_Cmd(TIM3, ENABLE);/使能TIM3主函數(shù)代碼39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論