1 对于MCU来说,定时器是必备的一个模块-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

对于MCU来说,定时器是必备的一个模块

5RJg_mcuworld 来源:lq 2019-02-04 16:00 次阅读

对于MCU来说,定时器是必备的一个模块,原因在于定时器是使用频率最高。

1

写在前面

我之前写过许多关于定时器的文章,不过后台还是有很多朋友问与定时期相关的问题,所以,这里也给大家推荐下面的这个关于定时器的资料

相信有部分朋友都收到STM32公众号的消息了,就是提供了一个我认为比较好的资料:STM32 定时器基本原理及常见问题之培训资料

这个资料我是第一时间就下载来看了,觉得整理的很好。特别是对于很多初学以及学习了一段时间STM32的朋友来说,对全方面掌握定时器有很大帮助作用。

考虑到很多朋友都只是知道有这么一个资料,没有下载来学习、掌握。所以,今天在这里挑一些要点,带领大家学习。

下载地址在ST中文网,(最近)进入主页,都能在首页看到这个消息。

https://www.stmcu.com.cn/Designresource/design_resource_detail?file_name=STM32+%E5%AE%9A%E6%97%B6%E5%99%A8%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B9%8B%E5%9F%B9%E8%AE%AD%E8%B5%84%E6%96%99&lang=EN&ver=3.1

这个资料总共有186页。内容比较多,但讲述的比较全面。

(提示:公众号不支持外部链接,请复制链接到浏览器打开)

2

资料的主要内容

• STM32定时器概述

• 定时器时基单元

• 定时器输入捕捉功能

• 定时器比较输出功能

• 定时器触发同步与级联

• 定时器DMA批量传送

• 定时器产生的触发输出与其它外设的关联

• STM32F334/STM32F7/STM32L4等新增的定时器功能

• 案例分享【穿插在上述内容中】

3

STM32定时器分类

整体讲, STM32家族的定时器众多,按照核内、核外标准大致分为两部分:

核内定时器 + 外设定时器

• 核内定时器 : Systick

• 外设定时器: 特定应用定时器+常规定时器

• 特定应用定时器: LPTIM;RTC;WTD;HRTIM

• 常规定时器: 基本定时器、通用定时器、高级定时器 【本篇介绍重点】

按计数器位宽来分:

• 16位定时器

• 32位定时器 【TIM2 TIM5】

• 24位定时器 【Systick】

常规定时器

1.基本定时器:几乎没有任何对外输入/输出,常用作时基,实现基本的计数、定时功能。

2.通用定时器:除了基本定时器的时基功能外,还可对外做输入捕捉、输出比较以及连接其它传感器接口编码器和霍尔传感器】 。

3.高级定时器: 此类定时器的功能最为强大,除了具备通用定时器的功能外,还包含一些与电机控制数字电源应用相关的功能,比方带死区控制的互补信号输出、紧急刹车关断输入控制。

4

STM32定时器模块

STM32【通用或高级】 定时器大致分为六个功能单元:

• 从模式控制单元:负责时钟源、触发信号源的选择;控制计数器的启停、复位、门控等;

• 时基单元:定时器核心单元。负责时钟源的分频、计数、溢出重装等。

• 输入单元:为部分的时钟信号、 捕捉信号、 触发信号提供信号源。

• 比较输出单元:通过对比较寄存器与计数器的数值匹配比较,实现不同输出波形。

• 触发输出单元:输出触发信号给到其它定时器或外设。

• 捕捉比较单元: 是输入捕捉或比较输出的公共执行单元。

从信号链角度大体了解STM32定时器:

STM32定时器中存在着几种基本的信号:输入信号、 时钟信号、 触发输入信号、 触发输出信号,它们之间相互关联形成相应的信号链,从而衍生出各种定时器的功能。

5

STM32定时器功能汇总

1、 六类功能单元

【时基、从模式控制、输入、输出、捕捉比较、触发输出】

2、 四类信号

【时钟信号、外部输入信号、触发输入信号、触发输出信号】

3、 四类事件

【更新事件、捕捉、 比较事件、触发事件】

4、一大特性

【影子寄存器的预装载特性】

这上面的一些内容掌握了,对定时器基本就没多大问题了,资料中也有详细说明。

6

案例:定时器一使能就进中断的问题

问题描述: TIMER初始化阶段, 经常有人反馈一使能更新中断就就进中断服务程序?给开发带来些困扰,原因可能是什么?如何解决?

因为在定时器的初始化代码里有软件更新操作触发了更新事件,并置位了更新中断标志,当使能更新中断时就立刻进入更新中断服务程序。

在STM32标准库里的TIM_TimeBaseInit( )函数里都有这句代码:

TIMx->EGR = TIM_PSCReloadMode_Immediate;

• 在Cube库里的HAL_TIM_Base_Init( )函数里的 函数有这句代码:

TIMx->EGR = TIM_EGR_UG;

显然,这两行代码使用到了前面提到的软件更新操作,触发了更新事件,置位更新中断标志。所以我们在使能定时器更新中断之前,可以先做更新中断标志的清除操作。

说明:资料中提供了很多案例说明,以及分析,我觉得比较好,方便大家理解。请多理解一下这些案例。

7

时钟源问题思考

1、几种时钟源?来自何处?

2、来自TI1fp1与TIF_ED信号差别是什么?

3、来自TI1/TI2的时钟是否可以直接像内部时钟一样被计数器用来计数?

4、根据时钟源的介绍,你了解到了几种触发输入信号?

5、TI3FP4可以作为通道2的输入捕捉信号吗?

6、TI4FP4可以作为触发信号吗?

好了,篇幅有限,就写到这里。这个资料的内容我基本都看了一遍,可以结合《参考手册》一起学习,有部分内容来自《参考手册》。

希望还不知道,却又想学习并深入理解定时器的朋友尽快下载来看看。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17123

    浏览量

    350972
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114713

原文标题:对于MCU来说,定时器太重要了!

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用stm32的滴答定时器构建多组软件定时器

    不高。但是实现方法及其简单,甚至都不用配置什么外设,对于般的定时任务来说够用了。如果是对定时精度较高的任务
    发表于 08-11 09:14

    定时器MCU有多重要

    对于MCU来说定时器必备
    发表于 11-03 06:34

    MCU定时器的相关资料分享

    对于MCU来说定时器必备
    发表于 11-04 08:58

    基于MCU模块定时器的详细解析

    MCU中(M16),定时器是独立的模块,M16有三独立的
    的头像 发表于 01-16 09:42 1.1w次阅读

    基于MCU模块定时器工作原理解析

    MCU中(M16),定时器是独立的模块,M16有三独立的
    发表于 09-19 16:16 5630次阅读

    对于MCU来说定时器太重要了!

    对于MCU来说定时器必备
    发表于 10-28 15:21 8次下载
    <b class='flag-5'>对于</b><b class='flag-5'>MCU</b><b class='flag-5'>来说</b>,<b class='flag-5'>定时器</b>太重要了!

    清除所有定时器_对于MCU来说定时器太重要了!

    对于MCU来说定时器必备
    发表于 10-29 10:36 6次下载
    清除所有<b class='flag-5'>定时器</b>_<b class='flag-5'>对于</b><b class='flag-5'>MCU</b><b class='flag-5'>来说</b>,<b class='flag-5'>定时器</b>太重要了!

    STM32定时器-基本定时器

    ,分为基本定时器,通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是 16 位的
    发表于 11-23 18:21 31次下载
    STM32<b class='flag-5'>定时器</b>-基本<b class='flag-5'>定时器</b>

    通过TIM输出比较做一个定时器

    TIM是定时器模块的简称。TIM的核心是16位的自由定时器(TCNT)。有8完整的16位的
    发表于 11-26 20:21 11次下载
    通过TIM输出比较做<b class='flag-5'>一个</b><b class='flag-5'>定时器</b>

    SysTick 定时器

    11.1关于 SysTick 定时器SysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的
    发表于 12-05 14:51 9次下载
    SysTick <b class='flag-5'>定时器</b>

    Stm32入门——Systick定时器

    CPU直重复计数这件事),而通用或者高级定时器往往用来进行PWM输出、输入捕获等功能。至于为什么不用通用定时器或者高级定时器来完成延时功能,则是考虑到节省
    发表于 12-07 17:51 12次下载
    Stm32入门——Systick<b class='flag-5'>定时器</b>

    单片机MSP430入门-理论⑥--定时器模块-定时器A

    复位重启本期将重点介绍下,定时器模块中另一个比较重要常用的,定时器A1.0 先上图,这是定时器A的逻辑图,手册上都有上面这三
    发表于 12-16 16:54 12次下载
    单片机MSP430入门-理论⑥--<b class='flag-5'>定时器</b><b class='flag-5'>模块</b>-<b class='flag-5'>定时器</b>A

    【STM32】SysTick滴答定时器(delay延时函数讲解)

    Systick定时器,是简单的定时器对于CM3、CM4内核芯片,都有Systick定时器
    发表于 02-10 10:35 13次下载
    【STM32】SysTick滴答<b class='flag-5'>定时器</b>(delay延时函数讲解)

    分享厨房定时器电路

    厨房计时是我们在厨房中使用的小工具,以帮助我们烹饪食物。我们使用的大多数厨房定时器都是机械定时器,容易磨损。然而,上述数字厨房定时器电路比机械定时
    发表于 06-18 11:05 1440次阅读
    分享<b class='flag-5'>一</b><b class='flag-5'>个</b>厨房<b class='flag-5'>定时器</b>电路

    如何实现软件定时器

    在Linux,uC/OS,FreeRTOS等操作系统中,都带有软件定时器,原理大同小异。典型的实现方法是:通过硬件定时器产生固定的时钟节拍,每次硬件
    的头像 发表于 04-29 11:00 630次阅读