当前位置: 首页 > article >正文

4. STM32_定时器

概述

什么是定时器:

定时器核心就是计数器,是使用精准的时基,通过硬件的方式,实现定时功能的器件。

定时器的工作原理:

主频时钟CLK通过PSC进行分频后产生定时器时钟TIM CLK,计数器CNT根据TIM CLK的频率进行计数,当到达所计数的次数后,定时器产生溢出信号可以触发中断或事件,同时ARR将初始值重装载到CNT中,开启下一次的定时。 

定时器的类型:

STM32定时器分为常规定时器、专用定时器、内核定时器。其中常规定时器又分为基本定时器、通用定时器、高级定时器。各类定时器的关系如下:

三种常规定时器的区别:

常规定时器分为基本定时器、通用定时器、高级定时器,它们三个的功能是逐渐增强的关系。

  • 基本定时器:只能实现定时功能
  • 通用定时器:包含基本定时器的功能,并且具有多路独立通道,可用于输入捕获、输出比较
  • 高级定时器:包含通用定时器的功能,并且具有互补输出、刹车输入等电机控制功能。

基本定时器

基本定时器框图:

计数模式: 

计数模式有递增计数模式、递减计数模式、中心对齐计数模式。运行原理如下:

  • 递增计数模式

初始时,CNT = 0。之后CNT一直递增,直到CNT = ARR时溢出,CNT被重新设置为0。

  • 递减计数模式

初始时,CNT = ARR。之后CNT一直递减,直到CNT = 0时溢出,CNT被重新设置为ARR。

  • 中心对齐计数

初始时,CNT = 0。之后CNT一直递增,直到CNT = ARR - 1时溢出,CNT被设置为ARR。

之后CNT一直递减,直到CNT = 1时溢出,CNT被设置为0。之后递增重复以上操作。

对应的溢出条件及初始值总结如下:

计数模式溢出条件初始值
递增计数模式CNT = ARRCNT = 0
递减计数模式CNT = 0CNT = ARR
中心对齐计数模式

CNT = ARR -1

CNT = 1

初始/CNT=1溢出后CNT = 0

CNT=ARR-1溢出后CNT = ARR

各个计数模式的时序图分析:

分析下述时序图的PSC、ARR配置,以及计数模式。

分析:CK_PSC是输入到PSC中的时钟,CK_CNT是输入到CNT的时钟。从图中可以看到,2个CK_PSC产生1个CK_CNT,因此是2分频,PSC = 2-1 = 1。因为溢出信号是计数器上溢,所以是递增计数模式。递增计数模式溢出为ARR,从图中可以看到在CNT = 36时溢出,所以ARR = 36。

定时器溢出时间计算公式:

  • Tout:定时器的溢出时间,单位s
  • PSC:分频系数
  • ARR:溢出时的计数个数,在递增计数模式时,该值就是ARR寄存器中的值;在递减计数模式时,该值是初始化时的值;在中央对齐模式时,该值是ARR-1。
  • Ft:定时器的时钟源频率,就是框图中PSC_CK的值。单位Hz


http://www.kler.cn/a/415947.html

相关文章:

  • 911事件反思:灾难通信和ddos之间的取舍
  • 【无标题】多模态对齐
  • docker 创建Dockerfile
  • 社交新零售模式下“2+1 链动模式 S2B2C 商城小程序”的创新实践与发展策略
  • 鸿蒙HarmonyOS学习笔记(6)
  • 重学 Android 自定义 View 系列(八):星星评分控件(RatingBar)
  • Ubuntu下安装nginx和redis
  • 【代码随想录】刷题记录(49)-完全二叉树的节点个数
  • TikTok、YouTube、Meta全面上线小游戏板块,2024年游戏出海流量和变现新趋势
  • 【halcon】Metrology工具系列之 set_metrology_object_param
  • QGIS生成的XYZ切片的后台服务实现和前端调用
  • 性能测试之压测如何做
  • 获取轮廓末端点
  • 快速理解微服务中Gateway的概念
  • 实现对图片或者视频增加隐藏水印和提取水印
  • Linux下的wlan0控制
  • 将服务器上的服务映射到本地使用
  • MarkDown-插入图片-图片url地址的生成获取方法
  • 分布式协同 - 分布式锁一二事儿
  • 【深度学习】各种卷积—卷积、反卷积、空洞卷积、可分离卷积、分组卷积
  • 从简单的自动化脚本到复杂的智能助手:Agent技术的实践与应用
  • 【分布式】分布式事务
  • 浅谈telnet和ping
  • ChatGPT 网络安全秘籍(三)
  • python pycharm与cmd中制表符不一样
  • 时间相关转换