STM32学习笔记(HAL库)(9)

前 言

本文仅供个人参考记录复习,如有错误或者模糊的地方欢迎指教.

TIM计时器在嵌入式系统中扮演着十分重要的角色,通常用于定时、计数和触发事件,为系统提供了精确的时间控制和事件触发功能。

TIM计时器

TIM通常由微控制器或微处理器的外围设备控制器提供支持。TIM的功能包括生成精确的时间延迟、周期性的触发事件、PWM波形生成等。还可以连接到系统时钟源,并可以根据需要进行分频。TIM还可以与其他外设(如ADC、DAC等)或中断控制器进行联动,从而实现更复杂的系统功能。

根据复杂度与应用场景分为基本定时器、通用定时器和高级定时器。

基本定时器

基本定时器通常是简单的计数器,其计数值与时钟频率成正比。它可以用于生成精确的时间延迟或周期性触发事件,例如在一定时间间隔内执行某个任务。TIM基本计时器可以与DAC协同工作,实现定时产生模拟电压或电流的应用。

基本定时器通常只有一个计数通道。且只支持向上计数模式。

时钟输入由系统时钟源提供,基本定时器时钟源是内部的RCC时钟。通过预分频器可以对定时器的时钟信号进行分频,以降低时钟频率。计数器根据时钟输入和预分频器的设置进行计数。当计数器达到设定的值时即计数器的值与重装载寄存器值相等时,就会触发相应的更新中断与更新事件。

通用定时器

通用定时器是功能更强大的定时器,通常具有多个计数通道和更多的功能选项。它可以用于生成多个不同的定时/计数信号,并支持更复杂的功能,如输入捕获、输出比较、PWM波形生成等。通用定时器通常可以根据需求进行灵活配置。

通用定时器主要工作流程与基本定时器类似。

通用定时器的时钟源可以是内部的RCC时钟,也可以是外部时钟TIMx_ETR或者其他定时器ITR信号(因为TRGO可以连接其他定时器即当前定时器为其他定时器提供时钟源)以及TI1F_ED、TI1FP1、TL2FP2。

下半部分左边为输入捕获电路,可以用于测量输入方波的频率;右边为输出比较电路,可以用于输出PWM波形和驱动电机。

高级定时器  

高级定时器是一种更复杂和功能更丰富的定时器类型。它通常具有更多的计数通道、更高的分辨率和更多的功能选项。高级定时器可以实现更精确的时间控制和更复杂的事件触发,适用于需要高精度定时和计数的应用。

高级定时器主要工作流程与通用定时器类似。

高级定时器存在一个重复计数器,可以实现隔多个周期才更新一次(对于基本定时器和通用定时器都是一个周期更新一次),这大大的增加了定时时间。

高级定时器还有DTG电路,可以防止上下管同时导通,避免短路,保护功率半导体器件,同时通过准确控制死区时间,提高整个功率转换系统的稳定性和可靠性。

刹车失效事件:并且如果TIMx_BKIN引脚产生的刹车信号或内部时钟失效产生故障,控制电路就会自动切断输出,防止发生意外。

时基单元

可编程通用定时器的主要部分是一个16位计数器和与其相关的自动装载寄存器。这个计数器可
以向上计数、向下计数或者向上向下双向计数(中央对齐)。此计数器时钟由预分频器分频得到。
计数器、自动装载寄存器和预分频器寄存器可以由软件读写,在计数器运行时仍可以读写。
时基单元包含:
● 计数器寄存器(TIMx_CNT)
● 预分频器寄存器 (TIMx_PSC)
● 自动装载寄存器 (TIMx_ARR)

时钟输入模式

内部时钟模式:RCC内部时钟

外部时钟模式1:触发输入ETR外部时钟、ITRx其他定时器、TIx输入捕获通道

外部时钟模式2:ETR外部时钟

编码器模式:TIx输入捕获通道

计数模式

向上计数

计数器从初始值开始逐渐增加,直到达到设定的溢出值,然后重新从初始值开始。即计数器每次计数都会向上加一,直到达到最大值后溢出重置。

向下计数

计数器从初始值开始逐渐减少,直到达到零或者设定的溢出值,然后重新从初始值开始。即计数器的每次计数都会向下减一,直到达到最小值后溢出重置或者回到设定的溢出值。

中央对齐

计数器从初始值开始逐渐增加,直到达到设定的溢出值,然后使设定的溢出值为初始值,计数器从初始值开始逐渐减少,直到达到零。即计数器开始时每次计数都会向上加一,直到达到最大值后改变计数模式成每次计数都会向下减一,直到达到最小值后又继续改变。

时序

预分频器时序

(当预分频器的参数从 1 变到 2 时)

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

计数器时序

(内部时钟分频因子为2,即分频系数为2)

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

无预装时序的计数器(无缓存寄存器)

ARPE=0时的更新事件(TIMx_ARR没有预装入)

有预装时序的计数器(有缓存寄存器)

ARPE=1时的更新事件(预装入了TIMx_ARR)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值