STM32通用定时器介绍
STM32F4定时器介绍
定时器计数模式
向上计数模式
计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。
向下计数模式
计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
中央对齐模式(向上/向下计数)
计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。
几种定时器功能比较
基本定时器TIM功能
● 主要运用于定时计数以及驱动DAC
通用定时器TIM功能
● 定时器定时计数
● 输入捕获
● 输出比较
●PWM输出
● 使用外部信号控制定时器和定时器互连的同步电路
高级定时器TIM功能
● 通用定时器的有功能
● 带死区控制和紧急刹车,可用于PWM控制电机
定时器的时钟
定时器的时基部分
定时时间 1/(TIMxCLK/(PSC+1))*(ARR+1)
即:1/(定时器时钟源/分频系数)*自动重装载计数值
定时器输入捕获与输出比较
输入捕获
输入捕获可以用来捕获外部事件,比如引脚的电平变化(上升沿,下降沿),并记录下变化的时间,通常可以用来测量外部信号的频率或者电平持续的时间
输出比较
此项功能是用来控制一个输出波形,当计数器与捕获/比较寄存器的内容相同时,输出比较功能做出相应动作,比如电平的翻转。通常用于生产PWM波形
STM32定时器使用实例
实验: 利用基本定时器实现定时1秒中断,并在中断处理函数中打印输出字符
先看使用的定时器挂载到哪个总线上,总线的时钟频率*2就是该定时器的频率
时钟源:定时器时钟 TIMxCLK,即内部时钟 CK_INT,经 APB 预分频器后分频提供
计数器时钟:定时器时钟经过 PSC 预分频器之后,即 CK_CNT,用来驱动计数器计数计数器CNT:是一个 16 位/32的计数器
自动重装载寄存器:这里面装着计数器能计数的最大数值。当计数到这个值的时候,如果使能了中断的话,定时器就产生溢出中断
计时中断时间:1/(TIMxCLK/(PSC+1))*(ARR+1)