RT-Thread论坛
直播中

周臻庸

8年用户 907经验值
私信 关注
[问答]

RTthread 4.1 stm32h7系列不支持pwm要怎么处理?

找问题找了很久,搜到了一个4.0.2版本pwm 没有支持STM32H7系列的帖子
现在是4.1 还是没有,求助大佬帮改个代码
报错信息

驱动程序里没有STM32H7的

  • static rt_err_t drv_pwm_get(TIM_HandleTypeDef *htim, struct rt_pwm_configuration *configuration)
  • {
  •     /* Converts the channel number to the channel number of Hal library */
  •     rt_uint32_t channel = 0x04 * (configuration->channel - 1);
  •     rt_uint64_t tim_clock;

  • #if defined(SOC_SERIES_STM32F2) || defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
  •     if (htim->Instance == TIM9 || htim->Instance == TIM10 || htim->Instance == TIM11)
  • #elif defined(SOC_SERIES_STM32L4)
  •     if (htim->Instance == TIM15 || htim->Instance == TIM16 || htim->Instance == TIM17)
  • #elif defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32G0)
  •     if (0)
  • #endif
  •     {
  • #if !defined(SOC_SERIES_STM32F0) && !defined(SOC_SERIES_STM32G0)
  •         tim_clock = HAL_RCC_GetPCLK2Freq() * 2;
  • #endif
  •     }
  •     else
  •     {
  • #if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32G0)
  •         tim_clock = HAL_RCC_GetPCLK1Freq();
  • #else
  •         tim_clock = HAL_RCC_GetPCLK1Freq() * 2;
  • #endif
  •     }

  •     if (__HAL_TIM_GET_CLOCKDIVISION(htim) == TIM_CLOCKDIVISION_DIV2)
  •     {
  •         tim_clock = tim_clock / 2;
  •     }
  •     else if (__HAL_TIM_GET_CLOCKDIVISION(htim) == TIM_CLOCKDIVISION_DIV4)
  •     {
  •         tim_clock = tim_clock / 4;
  •     }

  •     /* Convert nanosecond to frequency and duty cycle. 1s = 1 * 1000 * 1000 * 1000 ns */
  •     tim_clock /= 1000000UL;
  •     configuration->period = (__HAL_TIM_GET_AUTORELOAD(htim) + 1) * (htim->Instance->PSC + 1) * 1000UL / tim_clock;
  •     configuration->pulse = (__HAL_TIM_GET_COMPARE(htim, channel) + 1) * (htim->Instance->PSC + 1) * 1000UL / tim_clock;

  •     return RT_EOK;
  • }


以及另一个函数中也是else 报错

  • static rt_err_t drv_pwm_set(TIM_HandleTypeDef *htim, struct rt_pwm_configuration *configuration)




更多回帖

发帖
×
20
完善资料,
赚取积分