置顶/星标公众,不错过每一条消息!

对于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可以作为触发信号吗?

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

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

推荐阅读:

1.ADC,DMA,多路,单次/连续转换

2.STM32中断,及FreeRTOS中断优先级配置

8最后

若觉得文章对你有帮助,随手点好看、分享,也是对我莫大的支持和鼓励。

扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!

长按识别图中二维码关注

定时器基本原理及常见问题相关推荐

  1. 手机屏幕常见故障_触屏不灵敏、断触怎么回事?手机触摸屏的基本原理与常见问题排查方法介绍...

    手机触摸屏断触是怎么回事?大家在日常使用中可能会碰到各种各样的触摸屏问题,类似:断触,滑动屏幕不跟手,输入法打字不灵敏,游戏中多点触摸不灵敏,等问题,下面咱们从利用排除法来进行排查定位.想要弄清手机触 ...

  2. STM32工作笔记0061---通用定时器基本原理

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 对于STM32F103系列,有三种定时器,有高级定时器,有通用定时器,还有基本定时器 这里咱们讲解 ...

  3. STM32 通用定时器基本原理

    STM32F10x系列总共最多有8个定时器: 三种STM32定时器区别: 通用定时器功能特点描述: ①. STM32 的通用 TIMx (TIM2.TIM3.TIM4 和 TIM5)定时器功能特点包括 ...

  4. STM32学习心得十八:通用定时器基本原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容: 1) 三种定时器分类及区别: 2) 通用定时器特点: 3) 通用定时器工作过程: 4) 实验一:定时器中断实验补充知识及部代码解读: 6) 实验二:定时器PWM输 ...

  5. STM32学习笔记(五 定时器及应用 1 定时器基本原理 )

    一.三种定时器区别 STM32F10x系列总共最多有8个定时器 1.1 通用定时器功能特点描述 通用定时器工作过程 计数器模式 高级控制定时器(TIM1 和TIM8) 高级控制定时器 高级控制定时器( ...

  6. 窗口看门狗实验定时器基本原理

    目录 1.  窗口看门狗 1.1  窗口看门狗概述 1.1.1  窗口看门狗工作示意图 1.1.2  窗口看门狗工作过程总结 1.1.3  窗口看门狗超时时间 1.1.4  为什么要窗口看门狗 ? 1 ...

  7. STM32通用定时器基本原理

    参考正点原子视频 STM32定时器 共有 8 个定时器,分为基本定时器,通用定时器和高级定时器.基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO.通 ...

  8. stm32——“通用定时器基本原理”

    目录 前言 一.定时器概述 1>.8个定时器 2>.三种stm32定时器区别 ​ 二.通用定时器 1>.stm32的通用TIMx(TIM2.TIM3.TIM4和TIM5)定时器功能特 ...

  9. 这位电子工程师,你不能错过。

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 0 目的 今天给大家推荐一位电子工程师,黄工. 从事嵌入式软件开发工作,他在公众号上 ...

最新文章

  1. Android开发总结
  2. 关于phpcmsv9更新缓存出现链接被重置的问题
  3. java提取图片中的文字,深入分析
  4. UVA - 489 ​​​​​​​Hangman Judge
  5. ​2022年中国医疗信息化研究报告
  6. 乾坤 微前端_拥抱云时代的前端开发架构——微前端
  7. PHP设计模式——模板模式
  8. rsync定时同步备份
  9. 使用UniWeibo实现Unity3d里分享到新浪微博功能
  10. Task5.NB_SVM_LDA
  11. Proteus8.9 下载与安装 以及大多数问题
  12. php文本生成图片,php文本文字创建生成图片_PHP教程
  13. 箫演奏技巧符号大全图解
  14. Workgroup 协议
  15. Xcode 6系列百度网盘地址,包含Xcode 6.2以及Xcode 6.3
  16. 在线考试系统的时间控制(倒计时)
  17. java 时间片_时间片-简介
  18. 字节(b)转换为千字节(kb)和兆(mb)的转换方法
  19. 大厂晋升指北1——职级体系
  20. 什么是shell?linux常用的shell有哪些

热门文章

  1. Dreamweaver中关于HTML的快捷键
  2. 用c语言编写5颗骰子任意投掷总数为15 的概率,2016概率论与数理统计试卷分析(1)...
  3. 淘宝官方商品、交易、订单、物流接口列表(淘宝oAuth2.0接口)
  4. Java实现王者荣耀小游戏(简单版,带有图片资源)
  5. OA办公自动化系统如何助力企业价值最大化
  6. 项目经理成长之路-初入职场(二)
  7. 一篇文章带你了解折线图
  8. android智能机顶盒测试,跑分过万 智能android机顶盒MINIX X5测试
  9. 深圳金证科技股份有限公司(介绍,准备进和有意向进去的请进来看一看,保证不后悔)...
  10. 金证科技 前端开发工程师校招一面面经