RT-Thread / rt-thread

RT-Thread is an open source IoT real-time operating system (RTOS).
https://www.rt-thread.io
Apache License 2.0
10.09k stars 4.93k forks source link

dev_pwm使用后体验反馈建议 #8098

Open meng-plus opened 10 months ago

meng-plus commented 10 months ago

使用环境STM32F103, iar开发环境,PWM用作电机控制

  1. 按照说明文档配置后 PWM无输出问题,经排查为未配置PWM输出 [pwm_config.h](https://github.com/meng-plus/rt-thread/blob/efc1a57bc9b0ac5c9f38c6c711418bd473d89b0c/bsp/stm32/libraries/HAL_Drivers/config/f1/pwm_config.h#L26)

    #define PWM1_CONFIG                             \
       {                                           \
          .tim_handle.Instance     = TIM1,         \
          .name                    = "pwm1",       \
          .channel                 = RT_NULL       \
       }

    .channel 默认配置全为RT_NULL,而经过排查源码发现此处的配置决定了通道的开关,但是此处的源码为所有STM32单片机公用,也就无法自定义修改,但是只有 https://github.com/meng-plus/rt-thread/blob/efc1a57bc9b0ac5c9f38c6c711418bd473d89b0c/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c#L424-L433 处有对PWM通道进行配置。 因此我认为此处设计不合理,建议在调用rt_pwm_enable 调用HAL_TIM_PWM_ConfigChannel完成PWM口的功能配置。 同时我也认为此处的接口是不完整的 PWM的更多模式未给可配置接口

mysterywolf commented 9 months ago

可否把代码粘过来看一下

meng-plus commented 9 months ago

可否把代码粘过来看一下

还没把功能整理好看,后续整理清楚了 给提交个pr