TIM(1)-------定时中断

TIM定时器主要有四个功能 这篇文章阐述第一个功能

  • 基本定时功能  用在 时钟 秒表  程序算法
  • 输出比较  用途:产生PWM波形,用于驱动电机等设备
  • 定时器输入捕获   
  • 编码器  读取正交编码器的输出波形

01.TIM的介绍

TIM是英文Timer的缩写,能干嘛呢? 可以对输入的时钟进行计数,在计数值达到设定值时触发中断。这 这这不纯纯计数器吗?答案是肯定的,当这个计数器的输入是基准时钟时,在计数的过程中,就是计时的过程。

想象一下,如果对stm32的基准时钟频率72MHZ,计72个数,那么就用掉了\frac{72}{72*10^6}=10^{-6}=1us,这个式子什么意思呢简单来说就是在72MHZ频率的下计72个数所用的时间是1us,同理,如果在同样主频下计72000个数,那就是1ms的时间。

在stm32中有16位计数器预分频器自动重装寄存器单元,在72MHz主频下最大可以实现59.65s的定时。

计数器是用来执行计数定时的一个寄存器,每来一个时钟,计数器就+1

预分频器,对计数器的时钟进行分频。

自动重装寄存器就是计数的目标值 ,也就是想要多少个时钟申请一下中断。

还有一个问题 这个定时器的最大定时时间是怎么来的呢?

因为在stm32中 计数器 预分频器 和自动重装寄存器 都是16位的即2^{16}=65536,我们将它们都设置为最大即F=\frac{72M}{65536*65536},得到中断频率,再取倒数就是时间值。

02.定时器类型

注意  定时器的编号 和它对应所属于的总线 在开启时钟的时候要用

定时器结构图

基本定时器

预分频器 计数器 和自动重装寄存器构成了 时基单元。

基本定时器有定时中断,主动触发DAC的功能。预分频器之前,连接都是基准计数时钟的输入为72MHz72MHz首先经过预分频器,对时钟进行预分配,若PSC写0  表示不分频 输出则为72MHz,如果预分频器写1则是2分频 输出为36MHz,以此类推 即 实际分频系数=预分频器值+1,最大值为65535。

计数值=自动重装值 产生中断,产生的中断称为 更新中断(Update interrupt)。更新中断后通往NVIC,进而得到CPU的响应。

基本定时器工作流程:从基准时钟,到预分频器,再到计数器,计数器自增同时不断和自动重装寄存器进行比较,计时相等时产生更新中断中断和更新事件

通用定时器

通用定时器和基本定时器相比

1.定时器模式不同 通用定时器支持向上计数向下计数中央对齐等三种模式

2.时钟源选择不同,通用可以选择 内部时钟和外部时钟

03.定时中断基本结构图

根据基本结构图定时器中断开启的步骤如下:

  1. RCC开启时钟,定时器基准时钟和外设的工作时钟都会同时打开
  2. 选择时基单元的时钟源,对于定时中断就选择内部时钟源
  3. 配置时基单元
  4. 配置输出中断控制,运行更新中断输出到NVIC
  5. 配置NVIC,在NVIC中打开定时器中断的通道,并分配一个优先级
  6. 运行控制 使能计数器,使能之后 计数器开始计数
  7. 定时器更新触发中断

04.预分频器时序

计数器计数频率:CK_CNT = CK_PSC / (PSC + 1)

05.计数器时序

计数器溢出频率:CK_CNT_OV = CK_CNT / (ARR + 1) = CK_PSC / (PSC + 1) / (ARR + 1)

06.RCC时钟树

三种不同的时钟源可被用来驱动系统时钟(SYSCLK):
● HSI振荡器时钟

● HSE振荡器时钟

● PLL时钟

这些设备有以下2种二级时钟源:
● 40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。

● 32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。

用户可通过多个预分频器配置AHB、高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2域的最大频率是72MHz。APB1域的最大允许频率是36MHz。SDIO接口的时钟频率固定为HCLK/2。

RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。ADC时钟由高速APB2时钟经2、4、6或8分频后获得。

定时器时钟频率分配由硬件按以下2种情况自动设置:

1.如果相应的APB预分频系数是1,定时器的时钟频率与所在APB总线频率一致。
2.否则,定时器的时钟频率被设为与其相连的APB总线频率的2倍。

07.附录

参考:【STM32学习笔记----TIM定时中断】
 

  • 33
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值