采用输入捕获方式获取输入端的高电平时的计数值!但是为什么总是差很多呢?我用预分频8获得1M的计数器脉冲,然后测试示波器输出的1k的方波,但是得到的高电平计数值是443!
我用的时外部复位模式
void TIM1_Init(void){TIM1_TimebaseInit(8 TIM1_COUNTERMODE_UP 0xffff 0x00);//计数器进行64分频和cco输出频率一致TIM1->CCMR1|=0X01;TIM1->CCER1&=0XFD;TIM1->CCMR2|=0X02;TIM1->CCER1|=0X20;TIM1->SMCR|=0X50;TIM1->SMCR|=0X04;TIM1->CCER1|=0X11;TIM1->CR1|=0X01;TIM1_ITConfig(TIM1_IT_CC2 ENABLE);TIM1_ITConfig(TIM1_IT_CC1 ENABLE)}
INTERRUPT_HANDLER(TIM1_CAP_COM_IRQHandler 12){u16_value = TIM1_GetCapture2(); TIM1->SR1=0X00; TIM1->SR2=0X00;}
不需要重复计数的中断,所以我就直接全清了!