外部脉冲从TIM3 CH1(PB4)输入。
程序:
1、管脚及时钟初始化
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度
GPIO_Init(GPIOB, &GPIO_InitStructure);
2、TIM3配置
TIM_DeInit(TIM3);
TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
TIM_TimeBaseStructure.TIM_Prescaler =0 ;
TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit( TIM3, &TIM_TimeBaseStructure); // Time base configuration
TIM_TIxExternalClockConfig(TIM3,TIM_TS_TI1FP1,TIM_ICPolarity_Rising,0);
TIM_SetCounter(TIM3, 0); // 清零计数器CNT
TIM_Cmd(TIM3,ENABLE);
3、定时去读取TIM3 CNT的数值
tmp=TIM_GetCounter(TIM3);
问题:使用外部信号发生器给PB4方波信号,但是读取TIM3 CNT时一直都是0。外部信号确认没有问题了,已经用示波器看了。不知程序上哪里出问题?还请大家帮忙看看,谢谢。难道TIM3 CH1不能作为外部脉冲计数?
|