173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

stm32高级定时器产生pwm波

keros@mark 2023-03-19 资讯中心

STM32通用定时器PWM输出

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。

STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出!这里我们仅利用 TIM3的 CH2 产生一路 PWM 输出。

PWM 相关的函数设置在库函数文件 stm32f10x_tim.h 和 stm32f10x_tim.c文件中。

TIM3_CH2 默认是接在 PA7上面的,而我们的 LED0 接在 PB5 上面,如果普通 MCU,可能就只能用飞线把 PA7 飞到 PB5上来实现了,不过,我们用的是 STM32,它比较高级,可以通过重映射功能,把 TIM3_CH2映射到 PB5 上。

STM32函数库对TIM3重映射有两种方法,一种是完全重映射GPIO_FullRemap_TIM3,这个比较好理解就是把TIM3的所有通道端口映射到Remap指定的端口上;还有一种是部分映射GPIO_PartialRemap_TIM3。

在库函数中,PWM 通道设置是通过函数 TIM_OC1Init()~TIM_OC4Init()来设置的,不同的通道的设置函数不一样,这里我们使用的是通道 2,所以使用的函数是 TIM_OC2Init()。

总结:PWM模式1下,TIMx_CCR1大时有效;PWM模式2下,TIMx_CCR1小有效。

有效电平的高低取决于TIM_OCPolarity的定义。本例子情况如下图:

至此,PWM初始化结束。

stm32 怎么用定时器产生多路的pwm 波

比如stm32的TIM4口就有4路比较输出口,设置好比较定时器缓存,并设定重新计数值和占空比即可,同时一定要允许信号输出,则4路就会有PWM波发出。看下面的例子:

stm32高级定时器怎么输出pwm

tim的channel通道会输出pwm,初始化把这两个管脚配置好,再就是要配置寄存器的功能和计数方式,输出极性。

本文标签:stm32高级定时器产生pwm波

产品列表
产品封装
友情链接