Browse Source

[bsp/stm32]优化功能(drv_pwm):设置PWM频率和脉宽时不破坏上一个PWM周期 (#6129)

* [bsp/stm32]优化功能(drv_pwm):设置PWM频率和脉宽时不破坏上一个PWM周期
BreederBai 3 years ago
parent
commit
78faea4b8d
1 changed files with 5 additions and 3 deletions
  1. 5 3
      bsp/stm32/libraries/HAL_Drivers/drv_pwm.c

+ 5 - 3
bsp/stm32/libraries/HAL_Drivers/drv_pwm.c

@@ -330,10 +330,12 @@ static rt_err_t drv_pwm_set(TIM_HandleTypeDef *htim, struct rt_pwm_configuration
         pulse = period;
     }
     __HAL_TIM_SET_COMPARE(htim, channel, pulse - 1);
-    __HAL_TIM_SET_COUNTER(htim, 0);
 
-    /* Update frequency value */
-    HAL_TIM_GenerateEvent(htim, TIM_EVENTSOURCE_UPDATE);
+    /* If you want the PWM setting to take effect immediately,
+    please uncommon the following code, but it will cause the last PWM cycle not complete. */
+    //__HAL_TIM_SET_COUNTER(htim, 0);
+
+    //HAL_TIM_GenerateEvent(htim, TIM_EVENTSOURCE_UPDATE); /* Update frequency value */
 
     return RT_EOK;
 }