查看原文
其他

STM32最小系统板教程第三章第4讲|STM32 定时器实验

电子开发学习 电子开发学习 2021-01-31

置顶公众号,不错过每一讲内容。




完整课程体系(公众号每日更新一讲):



本讲知识点:定时器简介、定时控制LED闪烁、TIM实现PWM输出




3.5.1   定时器简介


STM32的定时器(TIM)功能也是十分的强大,本开发板上共有四个TIM可以被配置使用,为TIM(1~4),其中TIM1为高级定时器,其余为通用定时器,每个TIM都包含4个独立通道。本讲只讲通用定时器的配置,见名知意,通用定时器的应用更为常见。通用定时器的功能有:输入捕获(可以测量输入信号的脉宽)、输出比较(产生输出波形)还可以产生PWM(脉冲宽度调制)波。


本讲主要讲解TIM精确定时和输出比较产生PWM这两个知识点。其他功能,大家在熟悉TIM的基本使用后,根据实际应用继续深入学习。


3.5.2   TIM实现LED精准闪烁


本讲,我们使用TIM3来实现相关实验,使用TIM的定时功能,不需要控制其他外设,因此不需要配置它所对应的GPIO引脚。同样复制一份上一讲的代码,添加tim.c和tim.h文件至工程,这里需要调用TIM的库函数,因此同样需要添加TIM的库至工程中,贴图如下:


图3-5-1 添加TIM库函数


图3-5-2 添加tim库函数及相关文件


接下来,在tim.c中编写定时器的初始化程序,贴图如下:


图3-5-3 TIM3配置

 

图3-5-4 TIM3中断服务函数


图3-5-5 TIM定时程序


代码编译无误,将程序下到开发板中,观察现象:每定时1s就进一次中断,用户灯就亮或灭一次,然后执行while循环中的打印信息,大家可以亲自动手实践一下!


3.5.3   TIM实现PWM输出


有了上一个实验作为基础,接下来,我们使用它的输出比较来实现PWM的功能。PWM可以用来驱动发光二极管来实现呼吸灯的效果,还可以用来控制电机用于调速。本实验是实现呼吸灯效果,首先看我们的原理图:

 

图3-5-6 MCU资源分布


图3-5-7 PC13引脚功能介绍


图3-5-8 TIM3通道引脚


由原理图我们可以知道,开发板上的TIM资源没有直接接相关外设,这样设计的目的是把TIM的每个通道引脚都留出来,待用户自行自由扩展。这里我们配置TIM3的通道1输出PWM,由数据手册可以知道该通道对应的MCU引脚为PA6,这里我们在上一节的定时代码基础上进行配置,贴图如下:


图3-5-9 PWM模式配置


图3-5-10 设置PWM占空比


程序编译一下,无误后下载到最小系统板,找一个发光二极管,正极接3V3,负极接PA6引脚,此时可以看到“ 呼吸灯 ”的效果:

 

图3-5-11 灯暗效果


图3-5-12 灯亮效果


至此,PWM输出控制实现“ 呼吸灯 ”的实验就成功了,当然,PWM还有其他应用,我们的DragonFly小四轴里的电机就是通过它来驱动的。


好了,本讲内容就到这里,大家亲自动手实践一下吧


视频课程(点击文末左下角“阅读原文”,可看高清视频):


TIM实现基本定时

https://v.qq.com/txp/iframe/player.html?vid=m0736qyvvno&width=500&height=375&auto=0


定时器输出PWM



最小系统板的购买链接(复制到淘宝打开即可):

https://item.taobao.com/item.htm?&id=573256065703


elink32仿真器购买链接(复制到淘宝打开即可):

https://item.taobao.com/item.htm?&id=558334383550


课程系列回顾:


STM32最小系统板教程第一章|开发板资源介绍

STM32最小系统板教程第二章|软件开发环境的介绍与安装

STM32最小系统板教程第二章第2讲|工程模板的搭建

STM32最小系统板教程第三章第1讲|从“点灯”入门STM32

STM32最小系统板教程第三章第2讲|STM32时钟系统及实现准确延时

STM32最小系统板教程第三章第3讲|STM32 UART串口通信

STM32最小系统板教程第三章第4讲|STM32 按键实验





感谢您阅读“电子开发学习”的文章,如果您觉得图文能帮助您学习,欢迎关注我们。请点击右上角按钮,选择“查看公众号”,再点击关注即可。或者可以通过搜索公众号的方式关注: electricstudy  。您可以通过扫码下面的二维码关注我们。如果您想阅读往期文章,可点击“查看历史消息”。





历史好文推荐(点击文章标题可跳转):

小马哥四轴硬件第1讲、    Altium Designer安装与介绍

小马哥四轴硬件第2讲上、原理图讲解之MCU最小系统讲解

小马哥四轴硬件第2讲下、原理图各模块讲解

小马哥四轴硬件第3讲上、AD库制作之原理图库的制作

小马哥四轴硬件第3讲下、AD库制作之PCB封装库的制作

小马哥四轴硬件第4讲上、原理图绘制

小马哥四轴硬件第4讲下、原理图绘制

小马哥四轴硬件第5讲、    用CAD绘制小四轴PCB外形

小马哥四轴硬件第6讲、    四轴PCB板元器件布局

小马哥四轴硬件第7讲上、PCB布线与2.4G模块布线

小马哥四轴硬件第7讲下、PCB布线之电源布线与敷铜

小马哥四轴硬件第8讲、    四轴四层板PCB板设计

小马哥四轴硬件第9讲、    原理图及PCB的检查

C#上位机开发1 |  Hello World!

AD学习—STM32F103最小系统板制作

新手上手STM32是学习库开发还是寄存器开发?

openmv学习2-寻找色块并打印出坐标

如何解决单片机下载程序失败的问题(文末有彩蛋)

如何让Arduino IDE支持你手里的STM32 nucleo开发板

新手如何使用STM32两个月内做出自己的空心杯小四轴(1)

新手如何使用STM32两个月内做出自己的空心杯小四轴(2)

新手如何使用STM32两个月内做出自己的空心杯小四轴(3)

新手如何使用STM32两个月内做出自己的空心杯小四轴(4)

如何根据芯片手册时序图编写驱动程序

双轮平衡车暴力拆解


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存