动态更改PWM波频率并输出一定数量PWM脉冲

一,动态更改PWM波频率:

1,定时器时钟使能(主,从)

2,正常配置产生PWM波。

3,使能事件更新。TIM->CR1的UDIS=0

4,使能影子寄存器TIM->CR1的ARPE=1

这样就可以直接更改TIM->ARR和CCR的值,当定时器溢出后,PWM波形变化后寄存器更新,波形更新,避免直接更改后产生错误。

二,产生一定数量PWM脉冲:主要思路是使用STM32自带的定时器同步功能中以一个定时器作为另一个定时器分频器的功能。

1,使能从定时器。注意:定时器内部触发链接:参考手册TIMx->SMCR中SMS位部分。

2,配置从定时器。注意:从定时器时钟源选择:外部时钟模式-External Clock Mode 1

(note:如果使用STM32自带的MX配置代码生成软件,每次生成代码从模式都会改为TriggerMode,注意改回来,坑!)

3,配置从定时器ARR寄存器,当主定时器产生PWM波时,每个波形脉冲从定时器跳动一次,从定时器溢出后就可以关闭两个定时器,这样就产生了一定数量的脉冲。

你可能感兴趣的:(STM32代码)