我正试图用1 PPR(每转脉冲)传感器测量L432KC Nucleo低速。对于低PPR,建议使用周期测量方法。如果我得到信号的周期,那么我可以应用公式:RPM = 60 /(脉冲周期)这就是我所拥有的:在CubeMx中,我设置了定时器2,通道3输入捕捉模式。我的APB2频率是1 MHz。tiM2预分频器为1000,计数器周期为10000.每次给定脉冲时,都会出现下降沿。
现在,在我的代码中:- void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
- {
- /* Prevent unused argument(s) compilation warning */
- UNUSED(htim);
- /* NOTE : This function should not be modified, when the callback is needed,
- the HAL_TIM_IC_CaptureCallback could be implemented in the user file
- */
- if(htim->Instance == TIM2){
- inputCaptureVal = __HAL_TIM_GetCounter(htim);
- __HAL_TIM_SetCounter(htim,0);
- }
- }
复制代码在while循环中,我有另一个变量:counterVal = __HAL_TIM_GetCounter(htim2);这是获得这段时期的正确方法吗?我希望得到各位的指导,因为这是我第一次使用输入捕获。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
- 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; }}
复制代码一周热门 更多>