初级会员

- 积分
- 110
- 金钱
- 110
- 注册时间
- 2016-7-16
- 在线时间
- 64 小时
|
5金钱
硬件背景:
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,这是为什么?
请各位大侠指点!!!
|
|