PWM输出实现呼吸灯控制

一、PWM介绍

Ⅰ.什么是PWM

  脉宽调制(PWM,Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

  通俗的说,就是控制在一个周期内,控制高电平多长时间,低电平多长时间(前面文章种有说过IO口就只有两种状态,0和1,对应就是0和5V或者0和3.3V)。也就是说通过调节高低电平时间的变化来调节信号、能量等的变化。

Ⅱ.PWM两个核心要点

  频率:每秒钟信号从高电平到低电平再回到高电平的次数,为一个PWM波周期的倒数。

  占空比:指高电平持续时间比一个周期持续的时间。可以通过控制占空比,来控制输出的等效电压。

  所以对于方波的话,频率和占空比确定后就可以确定一个波

Ⅲ.PWM工作原理

  SMT32F1系列共有8个定时器:高级定时器(TIM1、TIM8);通用定时器(TIM2、TIM3、TIM4、TIM5);基本定时器(TIM6、TIM7)。

  STM32的每个通用定时器都有独立的4个通道可以用来作为:输入捕获输出比较PWM输出单脉冲模式输出等。

  STM32的定时器除了TIM6和TIM7(基本定时器)之外,其他的定时器都可以产生PWM输出。其中,高级定时器TIM1、TIM8可以同时产生7路PWM输出。

  下图为向上计数模式:
在这里插入图片描述
  🎈在PWM输出模式下,除了CNT(计数器当前值)、ARR(自动重装载值)之外,还多了一个值CCRx(捕获/比较寄存器值)。
  🎈当CNT小于CCRx时,TIMx_CHx通道输出低电平;
  🎈当CNT等于或大于CCRx时,TIMx_CHx通道输出高电平。

  ​PWM的一个周期:

  🎈定时器从0开始向上计数

  🎈当0-t1段,定时器计数器TIMx_CNT值小于CCRx值,输出低电平

   🎈t1-t2段,定时器计数器TIMx_CNT值大于CCRx值,输出高电平

  🎈当TIMx_CNT值达到ARR时,定时器溢出,重新向上计数…循环此过程

  

Ⅳ.PWM的工作模式

  PWM模式1(向上计数) :计数器从0计数加到自动重装载值(TIMx_ARR),然后重新从0开始计数,并且产生一个计数器溢出事件

  PWM模式2(向下计数) :计数器从自动重装载值(TIMx_ARR)减到0,然后重新从重装载值(TIMx_ARR)开始递减,并且产生一个计数器溢出事件

Ⅴ.计算频率和占空比

   (1)PWM频率

  Fpwm =Tclk / ((arr+1)*(psc+1))(单位:Hz)

   其中,arr 是计数器值,psc 是预分频值

  (2)占空比

  duty circle = TIM3->CCR1 / arr(单位:%)

  其中,TIM3->CCR1 用户设定值
  (

  • 1
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值