你那个感觉差得远呢.
//tim2=103retim5:ch1234,pa0、1、2、3 remap: pa15、pb3、10、11
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//A0A1码盘,A3码盘0位置,A4电机0位置
GPIOX_Init(GPIOA,(GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3),GPIO_Mode_IPU);//Tim1C1~C4
TIM_TimeBaseStructure.TIM_Prescaler = 0x0; // No prescaling
TIM_TimeBaseStructure.TIM_Period = 2000*2-1; //溢出设置
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV4;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_EncoderInterfaceConfig(TIM2, TIM_EncoderMode_TI1,TIM_ICPolarity_Falling, TIM_ICPolarity_Falling);
TIM_ICStructInit(&TIM_ICInitStructure);
//TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_TRC;
TIM_ICInitStructure.TIM_ICFilter = 0x08;
TIM_ICInit(TIM2, &TIM_ICInitStructure);
/*ch3捕获上升沿
TIM_ICStructInit(&TIM_ICInitStructure);
TIM_ICInitStructure.TIM_Channel = TIM_Channel_3;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//TIM_ICSelection_IndirectTI;//
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x00;
TIM_ICInit(TIM2, &TIM_ICInitStructure); */
// Clear all pending interrupts
TIM_ClearFlag(TIM2, TIM_FLAG_Update|TIM_IT_CC1|TIM_IT_CC2);
TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE); //TIM_IT_CC3|
TIM2->CNT=2000;
TIM_Cmd(TIM2, ENABLE);
|