STM32CubeMX学习笔记十 《定时器PWM波输出》

前言

上一节已经完成定时器知识点的总结以及如何用CubeMX软件配置定时器。本节我们就来看看定时器其中重要的功能之PWM波的输出。

功能需求: 本节我们便通过CubeMX软件配置 TIM3 的通道 4 来产生 PWM 来控制 DS0 的亮度变化,以产生呼吸灯的效果。

定时器的PWM简介

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制,PWM 原理如下:
在这里插入图片描述
根据上图,我们假定定时器工作在向上计数 PWM模式,且当 CNT<CCRx 时,输出 0,当 CNT>=CCRx 时输出 1。那么就可以得到如上的 PWM示意图:当 CNT 值小于 CCRx 的时候,IO 输出低电平(0),当 CNT 值大于等于 CCRx 的时候,IO 输出高电平(1),当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率,这就是 PWM 输出的原理。简单的了解了一下定时器PWM的原理后,接下来我们就来看看如何用CubeMX软件来配置。

第一步 创建工程

1. 打开STM32CubeMX软件,创建新工程

在这里插入图片描述

2. 选择自己所用的芯片

在这里插入图片描述

3. 配置RCC以备使用外部时钟源

在这里插入图片描述

4. 配置GPIO输出控制LED灯,用于提示系统的运行状态在这里插入图片描述
5. 配置PWM输出GPIO引脚的相关参数

在这里插入图片描述

6. 配置定时器3的PWM输出通道、PWM的时钟频率、占空比、极性等参数

在这里插入图片描述

7. 配置完定时器的PWM参数后基本上完成了,接下来我们就是配置整个系统的时钟树,这里用的是外部25M时钟源,根据自己需配置频率

这里要注意的是③中的定时器频率,从上节中我们知道定时器3用的是这路时钟源也就是108MHZ,这决定了怎样配置我们的PWM波的输出频率。

在这里插入图片描述

8. 接下来就是工程的配置,特别注意的是工程的保存路径最好不要用中文路径,以免出现莫名其妙的问题

在这里插入图片描述

9. 配置生成的代码工程的HAL库及程序生成方式,最后点击生成代码即可

在这里插入图片描述

10. 打开配置生成的工程,TIM3_4的PWM波配置如下:

在这里插入图片描述

11. 因为我们需要实现呼吸的效果,因此我们通过改变PWM波的占空比实现,创建更改占空比函数如下图

在这里插入图片描述

12. 添加实现呼吸灯的控制逻辑,注意打开PWM通道

在这里插入图片描述

第二步 下载验证

将我们的工程编译完成后下载来验证是否完成我们本节的需求。(已完成功能的基本测试)

PWM软件工程如下:
百度网盘链接: https://pan.baidu.com/s/1CbbGYu4WacbvNtKoZ754HQ
提取码:CKJ1

总结

通过本节的PWM配置,我们又对定时器有了新的认识,不过并不是所有的定时器都可以输出PWM的,具体的总结请看上一节。PWM的用途还是蛮多的,比如驱动步进电机等,在学完定时器的基础上我们发现PWM的配置并不是想象中的那么复杂,所以呀这些知识点只是看着很困难,当我们静下心来把它好好研究一下后,便豁然发现,喔!原来就是这样啊。或者当成业余时间的一种玩乐,一边增长自己的知识点,一边丰富自己的生活也是不错的选择啊!本节就到这里了,感谢查阅!

STM32CubeMX学习笔记十一《定时器输入脉冲捕获》

作者:Cary.chen

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值