/******************************TIM2的通道1使用單脈沖模式**TIM3使用門(mén)控模式用來(lái)輸出PWM******************************///TIM2per:重裝值//Compare1:比較捕獲1的預(yù)裝載值voidMotor_Init(u16TIM2per,u16TIM3per,u16TIM3Compare1){TIM_TimeBaseInitTypeDefTIM_TimeBaseInitStruct;TIM_OCInitTypeDefTIM_OCInitStruct;GPIO_InitTypeDefGPIO_InitStruct;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//使能定時(shí)器2的時(shí)鐘RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能定時(shí)器3的時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//使能復(fù)用IO時(shí)鐘http://write.blog.csdn.net/postedit
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用推挽輸出GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_6;//PA0GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);//TIM2工作在單脈沖下TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;//沒(méi)有時(shí)鐘分割TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;//向上計(jì)數(shù)模式TIM_TimeBaseInitStruct.TIM_Prescaler=7200;//預(yù)分頻值,每100us計(jì)數(shù)一次TIM_TimeBaseInitStruct.TIM_Period=TIM2per;//重裝值TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);TIM_SelectOnePulseMode(TIM2,TIM_OPMode_Single);//設(shè)置TIM2在單脈沖模式,且是單一的脈沖,在下一個(gè)更新事件停止TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);//使能定時(shí)器2的通道1預(yù)裝載寄存器TIM_SelectOutputTrigger(TIM2,TIM_TRGOSource_OC1Ref);TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM2;//在向上計(jì)數(shù)時(shí),一旦TIMx_CNT