STM32L0 TIM2 PWM无波形踩坑记录

1、调了半天才发现是引脚初始化定义错误,习惯性定义自己的固定初始化写法脚PA_5,但是stm32库函数是GPIO_PIN_5和GPIOA来初始化。

STM32L0 TIM2 PWM无波形踩坑记录

 

 STM32L0 TIM2 PWM无波形踩坑记录

 

 

2、PWM有2个时钟需要使能要注意,一个是IO口的GPIOA时钟,另一个是RCC_TIM2时钟要使能。少了一个都不行HAL_RCC_GPIOA_CLK_ENABLE()、HAL_RCC_TIM2_CLK_DISABLE();

STM32L0 TIM2 PWM无波形踩坑记录

 

 STM32L0 TIM2 PWM无波形踩坑记录

 

 3、需要使用HAL_TIM_PWM_Init和HAL_TIM_PWM_ConfigChannel初始化配置。STM32L0 TIM2 PWM无波形踩坑记录

 

 

4、需要注意TIM引脚的复用配置比如GPIO_AF5_TIM2。不同IO口可能不同,目前用PA_5的TIM2_CHANNEL1。

STM32L0 TIM2 PWM无波形踩坑记录

 

 STM32L0 TIM2 PWM无波形踩坑记录

 

 

 

5、根据时钟配置Prescaler和Period,占空比看与Period的比值。

我系统时钟配置的是32M,根据自己的需求计算需要的频率。我0~100对应0~100%占空比

STM32L0 TIM2 PWM无波形踩坑记录

 

 STM32L0 TIM2 PWM无波形踩坑记录

 

 

6、要注意最后是否启动定时器与配置占空比HAL_TIM_PWM_Start()、__HAL_TIM_SET_COMPARE()?

STM32L0 TIM2 PWM无波形踩坑记录

 

STM32L0 TIM2 PWM无波形踩坑记录

 

上一篇:FREERTOS学习笔记四-信号量


下一篇:【各种中断】STM32cubeMX HAL库综合复习