STM32F103常规定时器

STM32F1x定时器学习笔记

首先非常感谢秉火和正点原子两个团队为我们提供学习STM32的丰富资料及详细教程。为加深记忆,也方便同行新手们一同学习进步,略作整理,以备查看,如有错误,欢迎指正,如有侵权,联系删帖!
定时器分类
STM32F1 系列单片机中,除了互联型的产品,都有 8 个定时器,分为2个基本定时器,4个通用定时器和2个高级定时器。
基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。
通用定时器 TIM2/3/4/5 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO。
高级定时器 TIM1/8是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO。

类型定时器计数分辨率计数类型预分频系数产生DMA捕获/比较通道互补输出
基本定时器TIM616位向上1~65535可以0没有
基本定时器TIM716位向上1~65535可以0没有
通用定时器TIM216位向上/向下1~65535可以4没有
通用定时器TIM316位向上/向下1~65535可以4没有
通用定时器TIM416位向上/向下1~65535可以4没有
通用定时器TIM516位向上/向下1~65535可以4没有
高级定时器TIM116位向上/向下1~65535可以4
高级定时器TIM816位向上/向下1~65535可以4

基本定时器功能框图
基本定时器的核心是时基,不仅基本定时器有,通用定时器和高级定时器也有。学习定时器时,我们先从简单的基本定时器学起,到了后面的通用和高级定时器的学习中,我们直接跳过时基部分的讲解即可。
在这里插入图片描述
时钟源
定时器时钟 TIMxCLK,即内部时钟 CK_INT,经 APB1 预分频器后分频提供,如果APB1 预分频系数等于 1,则频率不变,否则频率乘以 2,库函数中 APB1 预分频的系数是2,即 PCLK1=36M,所以定时器时钟 TIMxCLK=36*2=72M。
在这里插入图片描述

计数时钟
定时器时钟经过 PSC 预分频器之后,即 CK_CNT,用来驱动计数器计数。PSC 是一个16 位的预分频器,可以对定时器时钟 TIMxCLK 进行 1~65536 之间的任何一个数进行分频。具体计算方式为:CK_CNT=TIMxCLK/(PSC+1)。
自动重装载寄存器
自动重装载寄存器 ARR也 是一个 16 位的寄存器,这里面装着计数器的计数值最范围1~65536。当计数到这个值的时候,如果使能了中断的话,定时器就产生溢出中断。
定时时间的计算
定时器的定时时间等于计数器的中断周期乘以中断的次数。
计数器在 CK_CNT 的驱动下,计一个数的时间则是 CK_CLK 的倒数,等于:1/(TIMxCLK/(PSC+1)),产生一次中断的时间则等于:1/(CK_CLK *ARR)。如果在中断服务程序里面设置一个变量 time,用来记录中断的次数, 那么就可以计算出我们需要的定时时间等于: 1/CK_CLK *(ARR+1)*time。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值