想用STM32F103RBT6(也就是ALIENTEK MiniSTM32)的高级定时器1测外部计数的个数。采用外部时钟模式2.现代码如下:
RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //时钟使能
TIM_DeInit(TIM1); //配置TM1为计数器
TIM_TimeBaseStructure.TIM_Period = 0xFFFF; //计数器自动装载值为0xFFFF
TIM_TimeBaseStructure.TIM_Prescaler = 0x00; //不分频
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; //不滤波
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
//设置TM1为外部时钟模式2
TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
TIM_SetCounter(TIM1, 0); //清除计数器值
TIM_Cmd(TIM1, ENABLE); //开启计数
端口PA12已经配置为GPIO_Mode_IN_FLOATING。板的PA12虽已被上拉,用示波器能得到很好的方波。
然后另一定时器定时器的中断到来时度出TIM1_CNT值。另外用TIM2的外部时钟模式2能读出TIM2_CNT值。可是TIM1_CNT总为0!
请问错在那里了?望指教一下,麻烦啦! |