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

STM32定时器是 ST MCU 内部最基础且常用的外设,实际应用尤为普遍。去年,电堂推出了《STM32 TIMER基础及常规应用介绍》,为大家梳理了 STM32 TIMER 的庞大内容,涵盖 TIMER 的基本应用原理、常规应用等。现在将课程内容整理为文章,针对STM32定时器有基本了解的用户,分享具体的应用实现环节及常见问题解决。

本文重点介绍对STM32常规定时器的时基单元和时钟源,希望您对影子寄存器的预装载及更新、时钟源有哪些、来自何处等有所了解。

STM32常规定时器的时基单元和时钟源

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

基本定时器

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

78e78790eeb02a03ec5e4327f12db6bf.png

通用定时器

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

8bf1a6208d6f0270a5ee06a401095e13.png

高级定时器

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

5c5d8935d1eb7a6de25b86c4c134190d.png

了解STM32定时器

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

e8f51e928a0cfe96672032b43cfdeaee.png

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

  • 定时器中的PSC/ARR/RCR/CCR寄存器具有预装载功能,即每类寄存器具有双寄存器机制;
  • 分别由各自的影子寄存器和预装载寄存器组成;
  • 影子寄存器是真正起作用的寄存器,预装载寄存器为影子寄存器提供缓冲,提前做数据或指令准备;
  • 用户操作的永远只是预装载寄存器!
  • 在开启预装载功能时,影子寄存器的内容须借助更新事件完成更新!
  • 关于预装载功能的开启或关闭,往往也犹如影子、如幽灵般影响到我们的定时器应用开发。充分了解预装载机制与更新事件很重要!

一、时基单元

82d64cc57e4449a104593fb860d09fee.png

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

  • TIMx_PSC分频寄存器:设置分频器对时钟源的分频比
  • TIMx_CNT 核心计数器 :对从分频器过来的时钟进行计数
  • TIMx_ARR自动重装寄存器:为计数器设置计数边界或重装值。比如计数器向上计数时,记到多少发生溢出;向下计数时从多少开始往下计数。
  • TIMx_ARR/ TIMx_PSC 都分别由影子寄存器和预装载寄存器组成即使用双寄存器机制。
  • 影子寄存器:乃TIMER运行中真正起作用的寄存器,即实际寄存器。
  • 预装载寄存器:乃用户操作的寄存器,提前为影子寄存器做数据准备。
  • 在发生更新事件时,预装载寄存器的数据拷贝到 影子寄存器发挥作用

STM32高级定时器时基单元

5b2e04a8db9e7f13978b884ba5135bfd.png

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

二、计数器的时钟源

7c0dfe817751bc7e9d11247149d9cc29.png

内部时钟TIMx_CLK

c7f48182a443e5e4ebba5980a07267e1.png

内部触发输入:ITRx

67024dffb3075f0f1fa956ef4d6355d3.png

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

c72ff0e42f447a19f3ab454b0b437881.png

6589dd9489a49ed14e0c42d37ad837e4.png

外部时钟源模式2

c54c5491c0eae84a36ce795ef5f6727f.png

3ea96a1a99f52e30cde3356af4417c1f.png

各种时钟源的寄存器配置

6efb7b46fa54bed9f712869634e8b6be.png

感兴趣的朋友可以关注“AI电堂”公众号

3ed9b21b47c21ebbddf4faa70c5e8a33.png

也可以直接登陆电堂网站观看课程

电堂科技​c.51diantang.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值