使用输入捕捉模式测量速度

2019-07-14 17:23发布

我正试图用1 PPR(每转脉冲)传感器测量L432KC Nucleo低速。对于低PPR,建议使用周期测量方法。如果我得到信号的周期,那么我可以应用公式:RPM = 60 /(脉冲周期)这就是我所拥有的:在CubeMx中,我设置了定时器2,通道3输入捕捉模式。我的APB2频率是1 MHz。tiM2预分频器为1000,计数器周期为10000.每次给定脉冲时,都会出现下降沿。
现在,在我的代码中:
  1. void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
  2. {
  3.   /* Prevent unused argument(s) compilation warning */
  4.   UNUSED(htim);

  5.   /* NOTE : This function should not be modified, when the callback is needed,
  6.             the HAL_TIM_IC_CaptureCallback could be implemented in the user file
  7.    */
  8.   if(htim->Instance == TIM2){
  9.       inputCaptureVal = __HAL_TIM_GetCounter(htim);
  10.       __HAL_TIM_SetCounter(htim,0);
  11.   }
  12. }
复制代码
在while循环中,我有另一个变量:counterVal = __HAL_TIM_GetCounter(htim2);这是获得这段时期的正确方法吗?我希望得到各位的指导,因为这是我第一次使用输入捕获。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。