新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2018-8-5
- 在线时间
- 5 小时
|
TIM2编码器用的通道1和通道2(PA0\PA1) 没有重映射
但是在计数是只是0、1跳变,同样的配置在定时器4上可用
代码如下:void encoder_r_init(void)
{
GPIO_InitTypeDef GPIO_InitTypestructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitTypeStructure;
TIM_ICInitTypeDef TIM_ICInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //3õê¼»ˉ×óóò±àÂëÆ÷μÄIO
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); //3õê¼»ˉ×óóò±àÂëÆ÷¶¨ê±Æ÷
GPIO_InitTypestructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitTypestructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //éèÖÃ×ó±àÂëÆ÷μÄIO
GPIO_InitTypestructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitTypestructure);
TIM_TimeBaseInitTypeStructure.TIM_ClockDivision=TIM_CKD_DIV1; //2»·ÖÆμ
TIM_TimeBaseInitTypeStructure.TIM_CounterMode=TIM_CounterMode_Up; //ÏòéϼÆêy
TIM_TimeBaseInitTypeStructure.TIM_Period=65535; //ÖØ×°ÔØÖμ
TIM_TimeBaseInitTypeStructure.TIM_Prescaler=0; //Ô¤·ÖÆμÆ÷
// TIM_TimeBaseInitTypeStructure.TIM_RepetitionCounter=
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitTypeStructure);
TIM_EncoderInterfaceConfig(TIM2,TIM_EncoderMode_TI12,TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
TIM_ICStructInit(&TIM_ICInitStructure);
TIM_ICInitStructure.TIM_ICFilter = 10;
TIM_ICInit(TIM2, &TIM_ICInitStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update);//Çå3yTIMμĸüD±ê־λ
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
//Reset counter
TIM_SetCounter(TIM2,0);
TIM2 -> CNT=0;
TIM_Cmd(TIM2, ENABLE);
}
|
|