1. 程式人生 > >STM32f103ZET6 TIM8輸出PWM波形

STM32f103ZET6 TIM8輸出PWM波形

自動 裝載 產生 初始 輸出 時鐘 void 說明 nbsp

定時器8屬於高級定時器,只存在於大容量產品的103系列中,定時器8輸出PWM波形時與通用定時器2、3、4、5不同,必須同時開啟主輸出(TIM8->BDTR|=0x8000;)才能產生PWM波,其配置如下:

 1 /*********************************************
 2     函數名稱:void TIM4_PWM_Init(u16 arr,u16 psc)
 3     功        能:通用TIM4 CH1(PB6) CH2(PB7)PWM輸出初始化
 4     入        參:arr:自動重裝值。
 5                         psc:時鐘預分頻數
6 返 回:無 7 【說明】Frq = 72Mhz / ( psc + 1 ) / ( arr + 1 ) 8 *********************************************/ 9 void TIM4_PWM_Init(u16 arr,u16 psc) 10 { 11 RCC->APB1ENR|=1<<2; //TIM4時鐘使能 12 RCC->APB2ENR|=1<<3; //使能PORTB時鐘 13 14 GPIOB->CRL&=0X00FFFFFF
; //PB6 7 輸出 15 GPIOB->CRL|=0XBB000000; //復用功能輸出 16 17 TIM4->ARR=arr; //設定計數器自動重裝值 18 TIM4->PSC=psc; //預分頻器分頻設置 19 20 TIM4->CCMR1|=6<<4; //CH1 PWM1模式 21 //6: PWM1模式, 正脈沖 22 //
7: PWM2模式, 負脈沖 23 TIM4->CCMR1|=1<<3; //CH1 預裝載使能 24 TIM4->CCER|=1<<0; //OC1 輸出使能 25 26 TIM4->CCMR1|=6<<12; //CH2 PWM1模式 27 TIM4->CCMR1|=1<<11; //CH2 預裝載使能 28 TIM4->CCER|=1<<4; //OC2 輸出使能 29 30 TIM4->CR1=0x0080; //ARPE使能 31 TIM4->CR1|=0x01; //使能定時器4 32 } 33 /********************************************* 34 函數名稱:TIM8_PWM_Init 35 功 能:通用TIM8 CH1(PC6) CH2(PC7)PWM輸出初始化 36 入 參:arr:自動重裝值。 37 psc:時鐘預分頻數 38 返 回:無 39 【說明】Frq = 72Mhz / ( psc + 1 ) / ( arr + 1 ) 40 *********************************************/ 41 void TIM8_PWM_Init(u16 arr,u16 psc) 42 { 43 RCC->APB2ENR|=1<<13; //TIM8時鐘使能 44 RCC->APB2ENR|=1<<4; //使能PORTC時鐘 45 46 GPIOC->CRL&=0X00FFFFFF; //PC6 7 輸出 47 GPIOC->CRL|=0XBB000000; //復用功能輸出 48 49 TIM8->ARR=arr; //設定計數器自動重裝值 50 TIM8->PSC=psc; //預分頻器分頻設置 51 52 TIM8->CCMR1|=6<<4; //CH1 PWM1模式 53 //6: PWM1模式, 正脈沖 54 //7: PWM2模式, 負脈沖 55 TIM8->CCMR1|=1<<3; //CH1 預裝載使能 56 TIM8->CCER|=1<<0; //OC1 輸出使能 57 58 TIM8->CCMR1|=6<<12; //CH2 PWM1模式 59 TIM8->CCMR1|=1<<11; //CH2 預裝載使能 60 TIM8->CCER|=1<<4; //OC2 輸出使能 61 62 TIM8->CR1=0x0080; //ARPE使能 63 TIM8->BDTR|=0x8000; //主輸出使能 64 TIM8->CR1|=0x01; //使能定時器8 65 }

STM32f103ZET6 TIM8輸出PWM波形