资源描述:
《电机编码器解码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*功能名称IM3_PWM_Init(u16arr,u16psc)描述TIM3产生四路PWM*/voidTIM3_PWM_Init(u16arr,u16psc){GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC
2、RC
3、C_APB2Periph_AFIO,ENABLE);//使能GPIO外设和AFIO复用功能模块时钟使能GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);//Timer3全映射GPIOC->6,7,8,9//用于TIM3的CH2输出的PWM通过该LED显示//设置该引脚为复用输出功能,输出TIM3CH1CH2CH3CH4的PWM脉冲波形GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6
4、GPIO_Pin_7
5、GPIO_Pin_8
6、GPIO_Pin_9;//初始化GPIOGPIO_InitStructure.GPIO_
7、Mode=GPIO_Mode_AF_PP;//复用推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_ResetBits(GPIOC,GPIO_Pin_6
8、GPIO_Pin_7
9、GPIO_Pin_8
10、GPIO_Pin_9);//默认电机使能端状态:不使能TIM_TimeBaseStructure.TIM_Period=arr;//设置在下一个更新事件装入活动的自动重装载寄存器周期的值TIM_TimeBaseStructure.TIM_Prescaler=
11、psc;//设置用来作为TIMx时钟频率除数的预分频值这里是72分频,那么时钟频率就是1MTIM_TimeBaseStructure.TIM_ClockDivision=0;//设置时钟分割:TDTS=Tck_timTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//TIM向上计数模式TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);//根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位TIM_OCInitStructure.TIM_OCMo
12、de=TIM_OCMode_PWM1;//选择定时器模式:TIM脉冲宽度调制模式1TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//比较输出使能TIM_OCInitStructure.TIM_Pulse=0;//设置待装入捕获比较寄存器的脉冲值TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//输出极性:TIM输出比较极性高TIM_OC1Init(TIM3,&TIM_OCInitStructure);//根据TIM_OCInitStruct中指定的参数初
13、始化外设TIMxTIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能TIMx在CCR1上的预装载寄存器TIM_OC2Init(TIM3,&TIM_OCInitStructure);//根据TIM_OCInitStruct中指定的参数初始化外设TIMxTIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能TIMx在CCR2上的预装载寄存器TIM_OC3Init(TIM3,&TIM_OCInitStructure);//根据TIM_OCInitStruct中指定的参数初始化外设TIMxTI
14、M_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能TIMx在CCR3上的预装载寄存器TIM_OC4Init(TIM3,&TIM_OCInitStructure);//根据TIM_OCInitStruct中指定的参数初始化外设TIMxTIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能TIMx在CCR4上的预装载寄存器TIM_ARRPreload