正点原子mini板原理图_「正点原子STM32Mini板资料连载」第十三章 PWM 输出实验

本篇博客主要介绍了如何使用STM32的定时器TIM1的通道1产生PWM输出来控制LED亮度。通过配置TIM1的CCMR1、CCER、CCR1寄存器及开启TIM1和GPIO时钟,实现了PWM的占空比和频率控制。实验中,PWM模式设置、通道使能、比较值设置等步骤详细展开,最终通过修改TIM1_CCR1的值来调整占空比,从而控制LED亮度的变化。
摘要由CSDN通过智能技术生成

1)实验平台:正点原子stm32mini 开发板

2)摘自《正点原子STM32 不完全手册(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子

b720c52b85546628fcb889c387a6fde7.png

第十三章 PWM 输出实验

上一章,我们介绍了 STM32 的通用定时器 TIM3,用该定时器的中断来控制 DS1 的闪烁,

这一章,我们将向大家介绍如何使用 STM32 的定时器来产生 PWM 输出。在本章中,我们将使

用 TIM1 的通道 1 产生 PWM 来控制 DS0 的亮度。本章分为如下几个部分:

13.1 PWM 简介

13.2 硬件设计

13.3 软件设计

13.4 下载验证

13.1 PWM 简介

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

微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽

度的控制,PWM 原理如图 13.1.1 所示:

50941b130b5b6a454ea93539212b991c.png

图 13.1.1 PWM 原理示意图

图 13.1.1 就是一个简单的 PWM 原理示意图。图中,我们假定定时器工作在向上计数 PWM

模式,且当 CNT=CCRx 时输出 1。那么就可以得到如上的 PWM

示意图:当 CNT 值小于 CCRx 的时候,IO 输出低电平(0),当 CNT 值大于等于 CCRx 的时候,

IO 输出高电平(1),当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。

改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的

频率,这就是 PWM 输出的原理。

STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定

时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4

路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出!这里我们仅使用 TIM1

的 CH1 产生一路 PWM 输出。如果要产生多路输出,大家可以根据我们的代码稍作修改即可。

要使 STM32 的高级定时器 TIM1 产生 PWM 输出,除了上一章介绍的几个寄存器(ARR、

PSC、CR1 等)外,我们还会用到 4 个寄存器(通用定时器则只需要 3 个),来控制 PWM 的输

出。这四个寄存器分别是:捕获/比较模式寄存器(TIMx_CCMR1/2)、捕获/比较使能寄存器

(TIMx_CCER)、捕获/比较寄存器(TIMx_CCR1~4)以及刹车和死区寄存器(TIMx_BDTR)。

接下来我们简单介绍一下这四个寄存器。

首先是捕获/比较模式寄存器(TIMx_CCMR1/2),该寄存器总共有 2 个,TIMx _CCMR1

和 TIMx _CCMR2。TIMx_CCMR1 控制 CH1 和 2,而 TIMx_CCMR2 控制 CH3 和 4。该寄存器

的各位描述如图 13.1.2 所示:

38cc8e1a8ac997babc5f34071a1dcb0b.png

图 13.1.2 TIMx_CCMR1 寄存器各位描述

该寄存器的有些位在不同模式下,功能不一样,所以在图 13.1.2 中,我们把寄存器分了 2

层,上面一层对应输出时的设置而下面的则对应输入时的设置。关于该寄存器的详细说明,请

参考《STM32 参考手册》第 240 页,13.4.7 一节。这里我们需要说明的是模式设置位 OCxM,

此部分由 3 位组成。总共可以配置成 7 种模式,我们使用的是 PWM 模式,这 3 位必须设置为

110/111。这两种 PWM 模式的区别就是输出电平的极性相反。另外 CCxS 用于设置通道的方向

(输入/输出)默认设置为 0,就是设置通道作为输出使用。

接下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值