【话说定时器系列】之二:STM32常规定时器时基与时钟源

2023-03-07  

上节提到常规定时器包括:基本定时器、通用定时器和高级定时器。


基本定时器


基本定时器:没有任何对外输入/输出,主要用作时基计数、定时。




通用定时器


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




高级定时器


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



了解STM32定时器


从功能模块整体了解STM32定时器





从寄存器特色了解STM32定时器


  • 定时器中的PSC/ARR/RCR/CCR寄存器具有预装载功能,即每类寄存器具有双寄存器机制;

  • 分别由各自的影子寄存器和预装载寄存器组成;

  • 影子寄存器是真正起作用的寄存器,预装载寄存器为影子寄存器提供缓冲,提前做数据或指令准备;

  • 用户操作的永远只是预装载寄存器!

  • 在开启预装载功能时,影子寄存器的内容须借助更新事件完成更新!

  • 关于预装载功能的开启或关闭,往往也犹如影子、如幽灵般影响到我们的定时器应用开发。充分了解预装载机制与更新事件很重要!


一、时基单元




基本定时器、通用定时器的时基单元由3部分组成: 分频器、计数器、自动重装器。


  • TIMx_PSC分频寄存器:设置分频器对时钟源的分频比

  • TIMx_CNT 核心计数器 :对从分频器过来的时钟进行计数

  • TIMx_ARR自动重装寄存器:为计数器设置计数边界或重装值。比如计数器向上计数时,记到多少发生溢出;向下计数时从多少开始往下计数。

  • TIMx_ARR/ TIMx_PSC 都分别由影子寄存器和预装载寄存器组成即使用双寄存器机制。

  • 影子寄存器:乃TIMER运行中真正起作用的寄存器,即实际寄存器。

  • 预装载寄存器:乃用户操作的寄存器,提前为影子寄存器做数据准备。

  • 在发生更新事件时,预装载寄存器的数据拷贝到 影子寄存器发挥作用


STM32高级定时器时基单元



相比通用定时器,高级定时器时基单元增加了 重复计数器 和对应的寄存器TIMx_RCR,重复计数器是个向下计数器;当计数器发生 TIMx_RCR+1次溢出动作后 会触发更新事件。


二、计数器的时钟源




内部时钟TIMx_CLK



内部触发输入:ITRx




外部时钟源模式1示例:TI2上升沿






外部时钟源模式2






各种时钟源的寄存器配置



文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。