初始化程序:
void Init_
timer2(void)
{
TIM2_DeInit();
GPIO_Init(GPIOC, GPIO_PIN_5, GPIO_MODE_IN_PU_NO_IT);//输入 无中断
TIM2_TimeBaseInit(TIM2_PRESCALER_512, 0xffff);
TIM2_ICInit(TIM2_CHANNEL_1,TIM2_ICPOLARITY_RISING,TIM2_ICSELECTION_DIRECTTI,TIM2_ICPSC_DIV1,0X00);
TIM2_ClearFlag(TIM2_FLAG_UPDATE);
TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
TIM2_ITConfig(TIM2_IT_CC1, ENABLE);
TIM2_Cmd(ENABLE);
}
仿真执行效果:
明明CC1IF没有置1却进入if,时间很准时,每次都是63个计数值,2ms进入一次,其余都进入else里面,CC2IFCC3IF都莫名其妙置1.
但如果我选择通道是CH2的话,按照这个设置就会正常工作,不会有自动进入中断的问题。