void PWM_Configuration(void)//PWM初始化函數(shù)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//定時(shí)器初始化結(jié)構(gòu)
TIM_OCInitTypeDef TIM_OCInitStructure;//通道輸出初始化結(jié)構(gòu)
GPIO_InitTypeDefGPIO_InitStructure;//輸出通道的GPIO管腳結(jié)構(gòu)
//(1)TIM3初始化,時(shí)間基部分
TIM_TimeBaseStructure.TIM_Period=999; //周期0~999
TIM_TimeBaseStructure.TIM_Prescaler =71; //時(shí)鐘分頻
TIM_TimeBaseStructure.TIM_ClockDivision =0; //時(shí)鐘分割
TIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up;//模式
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure); //基本初始化
//TIM_ITConfig(TIM3, TIM_IT_CC4,ENABLE); //打開(kāi)中斷,中斷需要這行代碼
//(2)TIM3通道初始化 ,CCP部分
TIM_OCStructInit(&TIM_OCInitStructure); //默認(rèn)參數(shù)
TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_PWM1; //工作狀態(tài)
TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable; //設(shè)定為輸出,需要PWM輸出才需要這行代碼
TIM_OCInitStructure.TIM_Pulse =250; //占空長(zhǎng)度
TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_High; //高電平
TIM_OC4Init(TIM3,&TIM_OCInitStructure); //通道初始化
TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_PWM1; //工作狀態(tài)
TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable; //設(shè)定為輸出,需要PWM輸出才需要這行代碼
TIM_OCInitStructure.TIM_Pulse =500; //占空長(zhǎng)度
TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_High; //高電平
TIM_OC3Init(TIM3,&TIM_OCInitStructure); //通道初始化
TIM_OC3Init(TIM3, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_PWM1; //工作狀態(tài)
TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable; //設(shè)定為輸出,需要PWM輸出才需要這行代碼
TIM_OCInitStructure.TIM_Pulse =750; //占空長(zhǎng)度
TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_High; //高電平
TIM_OC2Init(TIM3, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_PWM1; //工作狀態(tài)
TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable; //設(shè)定為輸出,需要PWM輸出才需要這行代碼
TIM_OCInitStructure.TIM_Pulse =900; //占空長(zhǎng)度
TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_High; //高電平
TIM_OC1Init(TIM3, &TIM_OCInitStructure);
TIM_Cmd(TIM3,ENABLE); //使能TIM3,到此在TIM中已配置完成,下面開(kāi)始配置GPIO
//(3)PWM輸出通道初始化
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;//選擇PC
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz; //管腳頻率為50MHZ
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AF_PP; //模式為推挽輸出
GPIO_Init(GPIOC,&GPIO_InitStructure); //初始化GPIOA寄存器
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3 ,ENABLE);
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |