標(biāo)題: STM32 4路PWM配置完全函數(shù)分析 [打印本頁(yè)]

作者: qinqin    時(shí)間: 2015-6-9 01:56
標(biāo)題: STM32 4路PWM配置完全函數(shù)分析
STM32 4路PWM配置完全函數(shù):STM324路PWM配置完全函數(shù):

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