diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c b/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c index bf9660f86b5a88b0ca0a0d3697a03e46d9ad69c6..52b6d16bfcab4a49a2984b35ecb61a178aef71e5 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c @@ -402,13 +402,16 @@ static rt_err_t stm32_hw_pwm_init(struct stm32_pwm *device) goto __exit; } - master_config.MasterOutputTrigger = TIM_TRGO_RESET; - master_config.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - if (HAL_TIMEx_MasterConfigSynchronization(tim, &master_config) != HAL_OK) + if(IS_TIM_MASTER_INSTANCE(tim->Instance)) { - LOG_E("%s master config failed", device->name); - result = -RT_ERROR; - goto __exit; + master_config.MasterOutputTrigger = TIM_TRGO_RESET; + master_config.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(tim, &master_config) != HAL_OK) + { + LOG_E("%s master config failed", device->name); + result = -RT_ERROR; + goto __exit; + } } oc_config.OCMode = TIM_OCMODE_PWM1;