PWM載波生成

GPIO_InitTypeDef GPIO_InitStructure;//定義結(jié)構(gòu)體
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;//定義初始化結(jié)構(gòu)體
TIM_OCInitTypeDef  TIM_OCInitStructure;//定義結(jié)構(gòu)體

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);//使能GPIO外設(shè)和AFIO復(fù)用功能模塊時鐘
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定時器3時鐘
   
//選擇定時器3的通道3作為PWM的輸出引腳TIM3_CH3->PB0    GPIOB.0
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM_CH3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復(fù)用推挽功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化引腳
GPIO_SetBits(GPIOB,GPIO_Pin_0);

//初始化TIM3
TIM_TimeBaseStructure.TIM_Period = 1894; //自動重裝載寄存器的值
TIM_TimeBaseStructure.TIM_Prescaler =0; //TIMX預(yù)分頻的值
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //時鐘分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計數(shù)
//TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據(jù)以上功能對定時器進(jìn)行初始化
    
//TIM_ARRPreloadConfig(TIM3, ENABLE);
    
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//選擇定時器模式,TIM脈沖寬度調(diào)制模式1
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比較輸出使能
//TIM_OCInitStructure.TIM_OutputNState =TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//輸出比較極性低
TIM_OCInitStructure.TIM_Pulse = (1894+1)/3;
TIM_OC3Init(TIM3, &TIM_OCInitStructure);//根據(jù)結(jié)構(gòu)體信息進(jìn)行初始化
TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能定時器TIM2在CCR3上的預(yù)裝載值
    
//TIM_Cmd(TIM3, ENABLE);  //使能定時器TIM3
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容