关于STM32 PWM输出详解——想要分享的小白

本文详细介绍了STM32如何使用通用定时器输出PWM,包括PWM工作原理、代码实现步骤、配置细节和个人理解,强调了TIMx_ARR和TIMx_CCRx寄存器在确定频率和占空比中的作用,以及GPIO口和定时器的初始化设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次博客主要参考STM32战舰例程。

脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制 。

在本文中,小白将向大家介绍如何用通用定时器通道来输出PWM。定时器的工作过程如下图所示,在上一次博客“STM通用定时器详解”中,小白已经介绍了关于时基单元,并完成了对通用定时器的配置以及定时器中断的使用。如果没有定时器知识小伙伴,可以先去看一下小白的上一次博客。
在这里插入图片描述
**

PWM工作过程

**
在PWM 输出中,输出信号由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比。
在这里插入图片描述
如图所示,PWM 的输出可以简单的理解为:(为了便于理解)
计数器CNT向上计数(从0—ARR),每次计数都与CCRx的值进行比较。当CNT<CCRx时,定时器通道输出 低电平;当CNT>CCRx时,定时器通道输出 高电平。当CNT=ARR后,计数器CNT重新从0开始计数,这样就输出一个脉冲。上面所说的:
TIMx_ARR寄存器确定频率: 是指在预分频系数PSC与计数器CNT时钟确定的情况下,ARR的值越大,输出信号的周期越长,即频率越小。
TIMx_CCRx寄存器确定占空比:占空比是指高电平在一个周期之内所占的时间比率 .方波的占空比为50%,占空比为0.5。即我们可以通过修改CCRx的值来改变高电平出现的时间,即改变占空比。

**

代码实现

**

void TIM3_PWM_Init(u16 arr,u16 psc)
{
     
     GPIO_InitTypeDef GPIO_InitStructure;        //参数的结构体变量
     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
     TIM_OCInitTypeDef  TIM_OCInitStructure;

     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值