From 560a21207e1000191ba359b4c2d014f50cb0c852 Mon Sep 17 00:00:00 2001 From: bzrobotics Date: Wed, 5 Oct 2022 13:07:26 +0800 Subject: [PATCH] FIX: [bsp][stm32] pulse_encoder driver did not handle TIM overflow --- bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c b/bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c index 4c076d7b77..a23b342eab 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c @@ -157,10 +157,12 @@ rt_err_t pulse_encoder_control(struct rt_pulse_encoder_device *pulse_encoder, rt switch (cmd) { case PULSE_ENCODER_CMD_ENABLE: + __HAL_TIM_ENABLE_IT(&stm32_device->tim_handler, TIM_IT_UPDATE); HAL_TIM_Encoder_Start(&stm32_device->tim_handler, TIM_CHANNEL_ALL); HAL_TIM_Encoder_Start_IT(&stm32_device->tim_handler, TIM_CHANNEL_ALL); break; case PULSE_ENCODER_CMD_DISABLE: + __HAL_TIM_DISABLE_IT(&stm32_device->tim_handler, TIM_IT_UPDATE); HAL_TIM_Encoder_Stop(&stm32_device->tim_handler, TIM_CHANNEL_ALL); HAL_TIM_Encoder_Stop_IT(&stm32_device->tim_handler, TIM_CHANNEL_ALL); break; -- GitLab