STM32定时器是 ST MCU 内部最基础且常用的外设,实际应用尤为普遍。去年,电堂推出了《STM32 TIMER基础及常规应用介绍》,为大家梳理了 STM32 TIMER 的庞大内容,涵盖 TIMER 的基本应用原理、常规应用等。现在将课程内容整理为文章,针对STM32定时器有基本了解的用户,分享具体的应用实现环节及常见问题解决。
本文重点介绍对STM32常规定时器的时基单元和时钟源,希望您对影子寄存器的预装载及更新、时钟源有哪些、来自何处等有所了解。
STM32常规定时器的时基单元和时钟源
上节提到常规定时器包括:基本定时器、通用定时器和高级定时器。
基本定时器
基本定时器:没有任何对外输入/输出,主要用作时基计数、定时。
![78e78790eeb02a03ec5e4327f12db6bf.png](https://img-blog.csdnimg.cn/img_convert/78e78790eeb02a03ec5e4327f12db6bf.png)
通用定时器
通用定时器:除了基本定时器的时基功能外,还可对外做输入捕捉、输出比较以及连接其它传感器接口【编码器和霍尔传感器】。
![8bf1a6208d6f0270a5ee06a401095e13.png](https://img-blog.csdnimg.cn/img_convert/8bf1a6208d6f0270a5ee06a401095e13.png)
高级定时器
高级定时器:此类定时器的功能最为强大,除了具备通用定时器的功能外,还包含一些与电机控制和数字电源应用相关的功能,比方带死区控制的互补信号输出、紧急刹车关断输入。
![5c5d8935d1eb7a6de25b86c4c134190d.png](https://img-blog.csdnimg.cn/img_convert/5c5d8935d1eb7a6de25b86c4c134190d.png)
了解STM32定时器
从功能模块整体了解STM32定时器
![e8f51e928a0cfe96672032b43cfdeaee.png](https://img-blog.csdnimg.cn/img_convert/e8f51e928a0cfe96672032b43cfdeaee.png)
从寄存器特色了解STM32定时器
- 定时器中的PSC/ARR/RCR/CCR寄存器具有预装载功能,即每类寄存器具有双寄存器机制;
- 分别由各自的影子寄存器和预装载寄存器组成;
- 影子寄存器是真正起作用的寄存器,预装载寄存器为影子寄存器提供缓冲,提前做数据或指令准备;
- 用户操作的永远只是预装载寄存器!
- 在开启预装载功能时,影子寄存器的内容须借助更新事件完成更新!
- 关于预装载功能的开启或关闭,往往也犹如影子、如幽灵般影响到我们的定时器应用开发。充分了解预装载机制与更新事件很重要!
一、时基单元
![82d64cc57e4449a104593fb860d09fee.png](https://img-blog.csdnimg.cn/img_convert/82d64cc57e4449a104593fb860d09fee.png)
基本定时器、通用定时器的时基单元由3部分组成: 分频器、计数器、自动重装器。
- TIMx_PSC分频寄存器:设置分频器对时钟源的分频比
- TIMx_CNT 核心计数器 :对从分频器过来的时钟进行计数
- TIMx_ARR自动重装寄存器:为计数器设置计数边界或重装值。比如计数器向上计数时,记到多少发生溢出;向下计数时从多少开始往下计数。
- TIMx_ARR/ TIMx_PSC 都分别由影子寄存器和预装载寄存器组成即使用双寄存器机制。
- 影子寄存器:乃TIMER运行中真正起作用的寄存器,即实际寄存器。
- 预装载寄存器:乃用户操作的寄存器,提前为影子寄存器做数据准备。
- 在发生更新事件时,预装载寄存器的数据拷贝到 影子寄存器发挥作用
STM32高级定时器时基单元
![5b2e04a8db9e7f13978b884ba5135bfd.png](https://img-blog.csdnimg.cn/img_convert/5b2e04a8db9e7f13978b884ba5135bfd.png)
相比通用定时器,高级定时器时基单元增加了 重复计数器 和对应的寄存器TIMx_RCR,重复计数器是个向下计数器;当计数器发生 TIMx_RCR+1次溢出动作后 会触发更新事件。
二、计数器的时钟源
![7c0dfe817751bc7e9d11247149d9cc29.png](https://img-blog.csdnimg.cn/img_convert/7c0dfe817751bc7e9d11247149d9cc29.png)
内部时钟TIMx_CLK
![c7f48182a443e5e4ebba5980a07267e1.png](https://img-blog.csdnimg.cn/img_convert/c7f48182a443e5e4ebba5980a07267e1.png)
内部触发输入:ITRx
![67024dffb3075f0f1fa956ef4d6355d3.png](https://img-blog.csdnimg.cn/img_convert/67024dffb3075f0f1fa956ef4d6355d3.png)
外部时钟源模式1示例:TI2上升沿
![c72ff0e42f447a19f3ab454b0b437881.png](https://img-blog.csdnimg.cn/img_convert/c72ff0e42f447a19f3ab454b0b437881.png)
![6589dd9489a49ed14e0c42d37ad837e4.png](https://img-blog.csdnimg.cn/img_convert/6589dd9489a49ed14e0c42d37ad837e4.png)
外部时钟源模式2
![c54c5491c0eae84a36ce795ef5f6727f.png](https://img-blog.csdnimg.cn/img_convert/c54c5491c0eae84a36ce795ef5f6727f.png)
![3ea96a1a99f52e30cde3356af4417c1f.png](https://img-blog.csdnimg.cn/img_convert/3ea96a1a99f52e30cde3356af4417c1f.png)
各种时钟源的寄存器配置
![6efb7b46fa54bed9f712869634e8b6be.png](https://img-blog.csdnimg.cn/img_convert/6efb7b46fa54bed9f712869634e8b6be.png)
感兴趣的朋友可以关注“AI电堂”公众号
![3ed9b21b47c21ebbddf4faa70c5e8a33.png](https://img-blog.csdnimg.cn/img_convert/3ed9b21b47c21ebbddf4faa70c5e8a33.png)
也可以直接登陆电堂网站观看课程
电堂科技c.51diantang.com