对于MCU来说,定时器是必备的模块,因为定时器是使用频率最高的。
之前写过很多关于定时器的文章,但是后台还是有很多朋友问定时器相关的问题。因此,我也向大家推荐以下有关定时器的资料。
相信有朋友收到了STM32公众号的消息,里面提供了一篇我觉得比较好的资料:STM32定时器基本原理及常见问题培训资料。
我立即下载并阅读了这些信息,认为它组织得很好。特别是对于很多初学者和学习了一段时间STM32的朋友来说,全面掌握定时器是非常有帮助的。
考虑到很多朋友只知道有这样的资料存在,并没有下载下来学习和掌握。那么,今天我就挑几个重点,带领大家学习一下。
下载地址在ST中文网站上。当您(最近)进入主页时,您可以在主页上看到此消息。
该信息共有186页。内容虽多,但故事很全面。
(提示:公众号不支持外部链接,请复制链接到浏览器打开)
信息主要内容
? STM32 定时器概述
? 定时器时基单元
? 定时器输入捕捉功能
? 定时器比较输出功能
? 定时器触发同步和级联
? 定时器DMA批量传输
? 定时器生成的触发输出与其他外设的关联
? STM32F334/STM32F7/STM32L4 等的新定时器功能。
? 案例分享【穿插于以上内容】
STM32定时器分类
一般来说,STM32家族有很多定时器,按照内部和外部标准大致分为两部分:
核心定时器+外设定时器
? 内核定时器:Systick
? 外设定时器:专用定时器+通用定时器
? 应用特定定时器:LPTIM;RTC;WTD;HRTIM
? 常规定时器:基本定时器、通用定时器、高级定时器【本文要点】
? 16 位定时器
? 32 位定时器[TIM2 TIM5]
? 24位定时器[Systick]
定时定时器
1、基本定时器:几乎没有外部输入/输出,常作为时基来实现基本的计数和计时功能。
2、通用定时器:除了基本定时器的时基功能外,还可以进行输入捕获、输出比较、连接其他传感器接口[编码器和霍尔传感器]。
3.高级定时器:此类定时器功能最强大。除了通用定时器的功能外,它还包括一些与电机控制和数字电源应用相关的功能,例如带死区控制和紧急制动的互补信号输出。关闭输入控制。
STM32定时器模块
STM32【通用或高级】定时器大致分为六个功能单元:
? 从模式控制单元:负责选择时钟源和触发信号源;控制计数器的启停、复位、门控等;
? 时基单元:定时器核心单元。负责时钟源的分频、计数、溢出重载等。
? 输入单元:为部分时钟信号、采集信号、触发信号提供信号源。
? 比较输出单元:通过比较寄存器和计数器的值进行匹配比较,得到不同的输出波形。
? 触发输出单元:向其他定时器或外设输出触发信号。
? 捕获比较单元:是捕获输入或比较输出的通用执行单元。
从信号链角度对STM32定时器的大致了解:
STM32定时器中有几个基本信号:**输入信号、时钟信号、触发输入信号、触发输出信号**,它们相互关联,形成相应的信号链,从而衍生出各种定时器功能。
STM32定时器功能总结
1、六类功能单元
【时基、从机模式控制、输入、输出、捕捉比较、触发输出】
2. 四种信号
[时钟信号、外部输入信号、触发输入信号、触发输出信号]
3. 四种事件
【更新事件、捕获、比较事件、触发事件】
4、一大特点
[影子寄存器的预加载特性]
一旦掌握了上面的一些内容,定时器就不会有太大的问题了,资料里有详细的说明。
案例:定时器一启用就中断的问题
问题描述:在TIMER初始化阶段,经常有人反映更新中断一使能就进入中断服务程序?给开发带来了一些麻烦,可能是什么原因呢?怎么解决?
因为定时器初始化代码中有一个软件更新操作会触发更新事件并设置更新中断标志。当更新中断使能时,立即进入更新中断服务程序。
这段代码包含在STM32标准库的TIM_TimeBaseInit()函数中:
TIMx-EGR=TIM_PSCReloadMode_Immediate;
? Cube 库中的HAL_TIM_Base_Init() 函数中的函数有以下代码:
TIMx-EGR=TIM_EGR_UG;
显然,这两行代码使用了前面提到的软件更新操作,触发更新事件并设置更新中断标志。所以在我们使能定时器更新中断之前,我们可以先清除更新中断标志位。
注:资料提供了很多案例描述和分析,我认为更好,更容易让大家理解。请更多地了解这些案例。
关于时钟源问题的思考
1. 有多少个时钟源?你从哪里来的?
2. TI1fp1 和TIF_ED 的信号有什么区别?
3. TI1/TI2 的时钟可以像内部时钟一样直接被计数器用来计数吗?
4.根据时钟源的介绍,您了解了哪些触发输入信号?
5. TI3FP4可以作为通道2的输入捕捉信号吗?
6. TI4FP4可以用作触发信号吗?
好吧,篇幅有限,所以我就到这里为止。我基本上已经阅读了这份材料的内容。您可以结合《参考手册》进行学习。部分内容来自《参考手册》。
希望还不了解但想深入学习和了解定时器的朋友可以尽快下载看一下。