我这边有以前在F103上写的一段代码,你参考一下
void Timer_ExtTrigger(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; //TIM1_ETR
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
TIM_ETRClockMode2Config(TIM1,TIM_ExtTRGPSC_DIV4,TIM_ExtTRGPolarity_NonInverted,0x0 ); //外部时钟模式2,4分频,上升沿,不过滤
TIM_SelectInputTrigger(TIM1,TIM_TS_ETRF); //触发源为ETR
TIM_Cmd(TIM1, ENABLE);
}
这段代码时间比较久了,当时也没仔细研究,可能有些小问题,思路就是把脉冲接在TIM1的ETR管脚上,TIM1设置成外部时钟模式2,触发源为ETR,然后读TIM1的计数寄存器就行,上面的程序用了4分频,你可以不分频
|