硬件背景:
PB3配置成TIM2-CH2输入(工作时已将JTAG接口线去掉):
/* PB3-> 计数脉冲输入 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //GPIO_Mode_IPU
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);
下面是定时器配置
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //TIM2时钟使能
TIM_DeInit(TIM2);
TIM_TimeBaseStructure.TIM_Prescaler=0; //定时器分频
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
TIM_TimeBaseStructure.TIM_Period=0xFFFF; //自动重装载值
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
TIM_TIxExternalClockConfig(TIM2,TIM_TIxExternalCLK1Source_TI2,TIM_ICPolarity_Rising,0);//外部时钟源
TIM_Cmd(TIM2,ENABLE ); //使能定时器2
然后在另外一个程序中读数。
IM_Cmd(TIM2,DISABLE );
Water_Speed_Counter = TIM_GetCounter(TIM2);
TIM_SetCounter(TIM2,0);
TIM_Cmd(TIM2,ENABLE );
但所得结果从来都是0,这是为什么?
请各位大侠指点!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>