用STM32编写频率计(捕获模式),为什么最高只能到500KHz

2019-07-15 21:47发布

       STM32tiM2通道2的捕获模式,用TIM3做定时器,测频率,为什么最高只能测到500khz,再往上测就只能显示大约实际频率的一般,这是为什么啊?该如何解决?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
narutolq
2019-07-16 02:16
//初始化TIM3参数
  TIM_TimeBaseStructure.TIM_Period = 60005;   //自动重装寄存器的值
  TIM_TimeBaseStructure.TIM_Prescaler = (1200 - 1);     //时钟预分频数(时钟频率=72M/(时间预分频数 - 1))
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //采样分频 未分频
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

  //初始化TIM2输入捕获通道2
  TIM2_ICInitStructure.TIM_Channel = TIM_Channel_2; //选择输入端IC1映射到TI2上,这是硬件设定好的,需要看电路图;
  TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕获
  TIM2_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上
  TIM2_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;  //配置输入分频,不分频
  TIM2_ICInitStructure.TIM_ICFilter = 0x00;  //配置输入滤波  不滤波
  TIM_ICInit(TIM2,&TIM2_ICInitStructure);


一周热门 更多>