Stm32学习笔记(七)通用定时器PWM驱动LED呼吸灯

上篇文章用通用定时器实现了LED灯的闪烁,这次用通用定时器来产生PWM波,使LED呈现呼吸灯的效果。

一、PWM相关知识

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

        为了使STM32的TIMx生成PWM输出,除了基本的寄存器设置外,还需要使用三个主要寄存器:捕获/比较模式寄存器(TIMx_CCMR1/2)、捕获/比较使能寄存器(TIMx_CCER)和捕获/比较寄存器(TIMx_CCR1~4)。下面是这些寄存器的简要介绍:

  1. 捕获/比较模式寄存器(TIMx_CCMR1/2)

    • TIMx_CCMR1控制CH1和CH2,TIMx_CCMR2控制CH3和CH4。
    • 模式设置位OCxM决定PWM模式,设置为110或111。
  2. 捕获/比较使能寄存器(TIMx_CCER)

    • 控制各输入输出通道的开关。我们使用CC2E位来使能PWM输出。
  3. 捕获/比较寄存器(TIMx_CCR1~4)

    • 这些寄存器的值与CNT的值比较,通过修改这些寄存器的值来控制PWM输出的脉宽。本实验使用TIM3的CH2,所以修改TIM3_CCR2实现PWM输出控制。

由于LED0连接在PB5引脚上,而TIM3_CH2默认连接在PA7上,所以要通过重映射功能将TIM3_CH2映射到PB5。STM32的重映射功能由AFIO_MAPR寄存器控制,需要设置TIM3_REMAP[1:0]为10,实现部分重映射。

二、代码相关

我们使用通用定时器TIM3模块来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值