当前位置:首页 > 单片机 > 单片机
[导读]/******************************TIM2的通道1使用单脉冲模式**TIM3使用门控模式用来输出PWM******************************///TIM2per:重装值//Compare1:比较捕获1的预装载值voidMotor_Init(u16TIM2per,u16TIM3per,u

/******************************TIM2的通道1使用单脉冲模式**TIM3使用门控模式用来输出PWM******************************///TIM2per:重装值//Compare1:比较捕获1的预装载值voidMotor_Init(u16TIM2per,u16TIM3per,u16TIM3Compare1){TIM_TimeBaseInitTypeDefTIM_TimeBaseInitStruct;TIM_OCInitTypeDefTIM_OCInitStruct;GPIO_InitTypeDefGPIO_InitStruct;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//使能定时器2的时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能定时器3的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//使能复用IO时钟http://write.blog.csdn.net/postedit


GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出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;//没有时钟分割TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;//向上计数模式TIM_TimeBaseInitStruct.TIM_Prescaler=7200;//预分频值,每100us计数一次TIM_TimeBaseInitStruct.TIM_Period=TIM2per;//重装值TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);TIM_SelectOnePulseMode(TIM2,TIM_OPMode_Single);//设置TIM2在单脉冲模式,且是单一的脉冲,在下一个更新事件停止TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);//使能定时器2的通道1预装载寄存器TIM_SelectOutputTrigger(TIM2,TIM_TRGOSource_OC1Ref);TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM2;//在向上计数时,一旦TIMx_CNT


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭