1、调了半天才发现是引脚初始化定义错误,习惯性定义自己的固定初始化写法脚PA_5,但是stm32库函数是GPIO_PIN_5和GPIOA来初始化。
2、PWM有2个时钟需要使能要注意,一个是IO口的GPIOA时钟,另一个是RCC_TIM2时钟要使能。少了一个都不行HAL_RCC_GPIOA_CLK_ENABLE()、HAL_RCC_TIM2_CLK_DISABLE();
3、需要使用HAL_TIM_PWM_Init和HAL_TIM_PWM_ConfigChannel初始化配置。
4、需要注意TIM引脚的复用配置比如GPIO_AF5_TIM2。不同IO口可能不同,目前用PA_5的TIM2_CHANNEL1。
5、根据时钟配置Prescaler和Period,占空比看与Period的比值。
我系统时钟配置的是32M,根据自己的需求计算需要的频率。我0~100对应0~100%占空比
6、要注意最后是否启动定时器与配置占空比HAL_TIM_PWM_Start()、__HAL_TIM_SET_COMPARE()?