TIM(Timer):
- 是一种内置的计时器模块,用于时间测量、事件计数和PWM生成等应用的硬件资源
- 对输入的时钟进行计数,并在计数值达到设定值时触发中断
- 可以通过外部时钟源或内部时钟源进行配置,支持多种计时模式,提供了多达4个不同的计数通道和多个输入捕获和输出比较功能。
定时器类型:
- 基本定时器:可以作为简单的计时器使用,可用于定时操作。
- 通用定时器:可用于高级定时操作,例如测量脉冲宽度、脉冲周期等。
- 高级定时器:具有更多高级的定时功能,例如输入捕获、输出比较、PWM输出等。
框图详解:
基本定时器:
- 内部时钟(CK_INT): 频率值为系统主频——72MHz
- PSC预分频器 :PSC 是16 位的预分频器,输出频率 = 输入频率 / PSC写入值+1
- CNT计数器 : 计数模式为向上计数,存储计数预分频后的计数时钟的数量,最大计数值为 65535
- 自动重装载寄存器 :存计数器的计数的计数目标,当计数值=目标值,产生中断信号,并清零计数器。
时钟源:
- 内部时钟(CK_INT): 外设总线APB提供的时钟。
- 外部时钟模式:外部输入脚(TIx),来着定时器通道1或通道2的引脚信号
- 外部时钟模式:外部触发输入(ETR),来着可复用为TIMx_ETR的IO口
- 内部触发输入(ITRx) : 用于与其他定时器级联
公式:
- 计数器计数频率:CK_CNT = CK_PSC / (PSC + 1)
- 计数器溢出频率:CK_CNT_OV = CK_CNT / (ARR + 1)
= CK_PSC / (PSC + 1) / (ARR + 1)