简介
• STM32F1 系列中有 8 个定时器,分为基本定时器,通用定时器和高级定时器。
• 基本定时器: TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。
• 通用定时器: TIM2/3/4/5 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输 入捕捉,每个定时器有四个外部 IO。
• 高级定时器: TIM1/8是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕 捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO。
定时器实质也是一个计数器, 与计数器的区别在于定时器对内部时钟计数而计数器对外部信号计数
工作框图
预分频寄存器 PSC 是一个16 位的预分频 器,可以对定时器时钟 TIMxCLK 进行 1~65536 之间的任何一个数进行分频。 计算方式为:
𝐶𝐾_𝐶𝑁𝑇 =𝑇𝐼𝑀𝑥𝐶𝐿𝐾/ (𝑃𝑆𝐶 + 1)
自动重装载寄存器 ARR 是 一个 16 位的寄存器,这里 面装着计数器能计数的最大 数值。当计数到这个值的时 候,如果使能了中断的话, 定时器就产生溢出中断。
通用定时器框图
特点:
• 16位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。
• 16位可编程预分频器(TIMx_PSC), 预分频系数为1~65535之间的任意 数值。
• 4个独立通道(TIMx_CH1~4),这些通道可以用来作为:
A.输入捕获
B.输出比较
C.PWM 输出(边缘/中间对齐模式)
D.单脉冲模式输出
• 可使用外部信号(TIMx_ETR)控制 定时器和定时器互连。
• 支持DMA/中断请求
• 支持针对定位的增量(正交)编码器和霍尔传感器电路
高级定时器
除通用定时器功能外,高级定时器 还具有:
- TIM1/TIM8时钟来源于高速APB2
- 重复次数计数器
- 6路带死区控制的互补输出(通道 1/2/3)
• 独立地选择每个输出的极性
• 独立地选择每个输出空闲状态 - 霍尔传感器、编码器接口
- 8各独立的中断/DMA请求线
- 内置安全保护机制
• 配置寄存器的写保护
• 紧急故障输入停机保护(禁止 PWM输出并产生中断)
计数模式
• ①向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且 产生一个计数器溢出事件。
• ②向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入 的值重新开始,并产生一个计数器向下溢出事件。
• ③中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计 数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。