找问题找了很久,搜到了一个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)