新手入门
- 积分
- 14
- 金钱
- 14
- 注册时间
- 2020-5-5
- 在线时间
- 8 小时
|

楼主 |
发表于 2017-4-25 11:12:47
|
显示全部楼层
void Encoder_Init(void) //TIM8 PC6,PC7
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_ICInitTypeDef TIM_ICInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE);//¿aÆôTIM3ê±Öó
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);//¿aÆôGPIOCμÄê±Öó
GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_TIM8);//¿aÆôGPIOC6μÄTIM3ê±Öóòy½Å
GPIO_PinAFConfig(GPIOC,GPIO_PinSource7,GPIO_AF_TIM8);//¿aÆôGPIOC7μÄTIM3ê±Öóòy½Å
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //GPIOC6,GPIOC7
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;//ÅäÖö˿úêä3öààDí 0 êä3öíÆí죨¸′λ×′쬣© 1êä3ö¿a©
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;//ÅäÖö˿úéÏà-ÏÂà-μļÄ′æÆ÷£¬00ÎTéÏà-ÏÂà-£¬01éÏà-£¬10 ÏÂà- 11±£áô
GPIO_Init(GPIOC,&GPIO_InitStructure); //3õê¼»ˉPC6 PC7
TIM_TimeBaseStructure.TIM_Period = 4095; //éèÖÃÔúÏÂò»¸ö¸üDÂê¼t×°èë»î¶ˉμÄ×Ô¶ˉÖØ×°ÔØ¼Ä′æÆ÷ÖüÆúμÄÖμ
TIM_TimeBaseStructure.TIM_Prescaler = 0; //éèÖÃóÃà′×÷ÎaTIMxê±ÖóÆμÂê3yêyμÄÔ¤·ÖÆμÖμ 2»·ÖÆμ
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //éèÖÃê±Öó·Ö¸î:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIMÏòéϼÆêyÄ£ê½
TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure);
//éèÖö¨ê±Æ÷3Îa±àÂëÆ÷Ä£ê½ IT1 IT2ÎaéÏéyÑØ¼Æêy
TIM_EncoderInterfaceConfig(TIM8, TIM_EncoderMode_TI12,TIM_ICPolarity_Rising,TIM_ICPolarity_Rising);
TIM_ICStructInit(&TIM_ICInitStructure);
TIM_ICInitStructure.TIM_ICFilter = 6; //êäèëÂË2¨Æ÷
TIM_ICInit(TIM8, &TIM_ICInitStructure);
TIM_ClearFlag(TIM8, TIM_FLAG_Update); //Çå3yËùóD±ê־λ
TIM_ITConfig(TIM8, TIM_IT_Update, ENABLE); //ÔêDíÖD¶Ï¸üDÂ
TIM8->CNT =0;
TIM_Cmd(TIM8, ENABLE); //ê1ÄüTIM3
NVIC_InitStructure.NVIC_IRQChannel = TIM8_UP_TIM13_IRQn ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//ÇàÕ¼óÅÏè¼¶3
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //×óóÅÏè¼¶0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQí¨μàê1Äü
NVIC_Init(&NVIC_InitStructure); //¸ù¾YÖ¸¶¨μÄ2Îêy3õê¼»ˉVIC¼Ä′æÆ÷
}
这是我的定时器初始化,求指导 |
|