其他分享
首页 > 其他分享> > STM32CubeMX学习笔记九《定时器配置》

STM32CubeMX学习笔记九《定时器配置》

作者:互联网

前言

STM32在定时器方面应用需求很多,掌握好后在编写系统心跳、数据处理等方面都起到想当重要的成分

定时器简介

所用的STM32F767有 TIM1 和 TIM8 等高级定时器,有 LPTIM1 低功耗定时器, 也有 TIM2-TIM5,TIM9~TIM14 等通用定时器,还有 TIM6 和 TIM7 等基本定时器,总共达 15 个定时器之多。

定时器的类型(总共15个定时器):

通用定时器:TIM2—TIM5 、TIM9—TIM14 总共10个定时器。
高级定时器:TIM1 、 TIM8 总共2个定时器
基本定时器:TIM6 、 TIM7 总共2个定时器
低功耗定时器:LPTIM1

STM32F4和STM32F7的定时器时钟源:
(1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线

(2)通用定时器timer2-timer5,通用定时器timer12-timer14以及基本定时器timer6,timer7的时钟来源是APB1总线

(3)当APB1和APB2分频数为1的时候,TIM1、TIM8-TIM11的时钟为APB2的时钟,TIM2-TIM7、TIM12-TIM14的时钟为APB1的时钟;

(4)而如果APB1和APB2分频数不为1,那么TIM1、TIM8-TIM11的时钟为APB2的时钟的两倍,TIM2-TIM7、TIM12-TIM14的时钟为APB1的时钟的两倍。

定时器的功能:
通用定时器:
通用定时器包含一个 16 位或 32 位自动重载计数器,该计数器由可编程预分频器驱动。它们可用于多种用途,包括测量输入信号的脉冲宽度( 输入捕获)或生成输出波形( 输出比较和 PWM)。使用定时器预分频器和 RCC 时钟控制器预分频器,可将脉冲宽度和波形周期从几微秒调制到几毫秒。这些定时器彼此完全独立,不共享任何资源。

高级定时器:

基本定时器:

定时器的计算公式:

							 Tout = ((arr+1)*(psc+1))/Tclk;

公式中psc(prescaler)就是分频系数,arr就是计数值(period),达到这个计数就会发生溢出中断,Tclk就是我上述分析的时钟源频率

以上便是窗口看门狗的简介,接下来我们将通过STM32CubeMx软件来配置定时器,实现使用 TIM3 的定时器中断来控制 DS1 的翻转,在主函数用 DS0 的翻转来提示程序正在运行。

第一步 创建工程

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

在这里插入图片描述

2. 选择自己所用的芯片

在这里插入图片描述

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

在这里插入图片描述

4. 配置时钟树

在这里插入图片描述

5. 我们这里初始化LED的GPIO用作提示验证软件是否正常运行。

在这里插入图片描述

6. 配置定时器初始化

在这里插入图片描述

7. 配置定时器中断功能来定时反转DS1

在这里插入图片描述

8. 设置工程名称、所用的软件编辑器和软件中堆栈的大小。

在这里插入图片描述

9. 配置所调用的HAL后,点击③处生成软件工程。

在这里插入图片描述

10. 打开软件工程tim.c文件查看并添加相关初始化配置。

在这里插入图片描述

11. 编写中断回调函数

在这里插入图片描述

第二步 下载验证

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

定时器工程

百度网盘链接: https://pan.baidu.com/s/1j2B3yzBuNcUWci0egVbVJA
提取码:wks3

总结

讲述定时器的篇章非常多,在日常的使用的占用的比例也是很多,搞清楚定时器的种类,特别是定时器的频率要搞明白,否则在使用中会出现和自己设置的逻辑相驳。come on !

作者:Cary.chen

标签:分频,分频器,定时器,16,笔记,计数器,STM32CubeMX,时钟
来源: https://blog.csdn.net/weixin_43123205/article/details/109958592