STM32F1学习——TIM

一、STM32中的定时器

在STM32中分为三种定时器,分别是基本定时器,通用定时器和高级定时器,每种定时器都是向下兼容的。

二、定时器详细介绍

a、基本定时器

基本定时器主要由下面与分频器、计数器 和 自动重装寄存器三个组成的时基单元,搭配上内部的RCC时钟来实现计时功能。

RCC的时钟一般都是72MHZ,16位的预分频器可以让频率变小,自动重装寄存器也是16位的,到了预设值会触发更新事件或者更新中断。

所以72M的时钟可以分到最小频率72M/(2^16) = 1099HZ,则每个时钟间隔1/1099 = 0.00091s。自动重装寄存器设置最大,2^16 = 65536,则一个外部输入72MHZ的基本定时器最长计时0.00091*65536 = 59.64s。

b、通用定时器

通用定时器一共可以分为三个部分,一个是时钟输入、一个是输入捕获、一个是输出控制。你可一看到输入捕获和输出比较的端口是共用的,因为他们不能同时使用。在时钟输入里面ETRF是外部时钟,他也被称为外部时钟模式2。而他下面的通过选择器进入从模式控制器的是外部时钟模式1。

我们详细来看看外部时钟输入1,他主要由4个输入:

①ETR : 外部时钟输入,ETR既可以走外面也可以走里面,但会占用从模式控制器。

②ITRn: 其他定时器,这里主要是由其他定时器级联来使用的。

③TI1F_ED:输入捕获的CH1引脚的双边沿。

④TI1FP1 和 TI2FP2 : 分别表示CH1引脚的时钟 和 CH2引脚的时钟。

c、高级定时器

在高级定时器中,左上部分的一大部分都是通用定时器,他只在输出控制哪里加入了死区生成,和互补输出,还有一个TIMx_BKIN是为了刹车输入和保护电机使用的。

同时只在自动重装寄存器后面加入了一个重复计数器,当有几次重装才出发更新,则定时时间又可以增加。

三、代码

在本次实验过程中,我们准备使用内部时钟源来在OLED上,显示STM32运行时间的例子。那么在本次实验中我们配置的顺序应该为,①时钟源选择,本次使用内部时钟。 ②配置时基单元。③编写定时器更新中断函数。

为了节省文章篇幅,代码已经放在github仓库里了。hal库的暂未更新,请耐心等待。

Jiang-kun02/STM32F103c8t6_learning: 包括stm32F103C8T6的标准库和HAL库的示例代码

参考

[6-1] TIM定时中断_哔哩哔哩_bilibili

【STM32】动画讲解定时器外部时钟 & 实战传送带测速装置_哔哩哔哩_bilibili

相关推荐
广州灵眸科技有限公司2 小时前
瑞芯微(EASY EAI)RV1126B CAN使用
linux·网络·单片机·嵌入式硬件
SmartRadio2 小时前
CH584M vs nRF52840 vs 主流BLE SoC全面对比
单片机·嵌入式硬件·mcu·物联网·开源·硬件工程
Java后端的Ai之路3 小时前
【神经网络基础】-神经网络学习全过程(大白话版)
人工智能·深度学习·神经网络·学习
k***92165 小时前
【C++】继承和多态扩展学习
java·c++·学习
weixin_440730505 小时前
java结构语句学习
java·开发语言·学习
魂万劫5 小时前
如何在虚拟机VM上|Linux环境内安装windows
linux·运维·服务器·windows
序属秋秋秋5 小时前
《Linux系统编程之进程控制》【进程等待】
linux·c语言·c++·进程·系统编程·进程控制·进程等待
zfj3215 小时前
top 命令中的 wa (IO wait) 指标,理论上几乎完全是由磁盘IO(包括swap)引起的,而不是网络IO
linux·网络·top·iowait
航Hang*5 小时前
Photoshop 图形与图像处理技术——第8章:图像的色彩与色彩调整和图像的输出与优化
图像处理·笔记·ui·photoshop
Xの哲學5 小时前
Linux网卡注册流程深度解析: 从硬件探测到网络栈
linux·服务器·网络·算法·边缘计算