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

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);这是获得这段时期的正确方法吗?我希望得到各位的指导,因为这是我第一次使用输入捕获。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
hfgfsds
1楼-- · 2019-07-15 00:14
我可以在回调中进行RPM计算吗?也就是说
  1. void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef * htim){if(htim-> Instance == TIM2){inputCaptureVal = __HAL_TIM_GetCounter(htim); __HAL_TIM_SetCounter(htim,0); RPM = 6000 / inputCaptureVal; }}
复制代码
mingodong
2楼-- · 2019-07-15 01:45
 精彩回答 2  元偷偷看……
hfgfsds
3楼-- · 2019-07-15 04:11
我还可以使用需要2个通道的PWM输入法吗?或者只有一个输入捕获模式的通道就足够了?
mingodong
4楼-- · 2019-07-15 07:18
不确定你指的是什么2通道方法。

一周热门 更多>