stm32 pwm实现过程

如果要从某IO端口输出PWM脉冲,相应的工作如下:

1.需要一个定时器实现周期循环计数

2.设置每个循环周期的比较值,从而实现占空比

3.配置某个IO口味定时器的PWM复用功能


例如:实现STM32 的 GPIOB_5 管脚输出PWM脉冲:

(stm32的定时器都有4个通道,PWM有4种模式,主要区别在于高低电平变化的时刻不同)

1.查询芯片手册,GPIOB_5 的复用功能对应定时器3的通道二

2.设置GPIOB_5 端口为复用推挽输出功能

3.设置定时器3的对应的GPIO复用重映射,即可以将定时器的4个通道,通过映射方式设置到不同的io管脚,这里选择部分映射后,通道二就映射到了GPIOB_5 管脚

4.设置定时器3工作在重载向上计数功能,可以设置一个重载预装值

5.设置PWM的工作模式和极性

6.然后将定时器3的通道2初始化设置的PWM模式

7.启动定时器3

8.PWM脉冲高低电平的输出取决于TIMx_ARR和TIMx_CCRx

TIMx_ARR就是定时器3的重装值,定时器3会从0开始计数到重装值后,又从0开始计数,如此反复。而这个计数周期是作为PWM脉冲的频率周期。

也就是在此计数周期内实现一个PWM脉冲周期。例如定时器3重装值=8,即8个定时器脉冲实现从0计数到8.而这8个定时器周期详单与1个pwm脉冲周期,如4个定时器周期是高电平,4个定时器周期为低电平。其中的4由TIMx_CCRx决定。


9.PWM脉冲周期计算

比如:定时器3的时钟频率 为 72MHZ, 重装值为:8, 则PWM的脉冲频率为 72/8 = 9MHZ

TIMx_CCRx决定占空比,可以在PWM脉冲输出的过程中随时改变,从而可以用来控制电机的速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值