文章目录
简介
STM32的基本定时器时TIM6和TIM7,这两个定时器个包含一个16位的自动装载计数器,有各自的可编程预分频器驱动。
作用
1) 提供时间基准
2)为数模转换器(DAC)提供时钟
主要特性
- 16位自动重装载累加寄存器
- 16位可编程(可实时修改)预分频器,预分频值为1~65536
- 触发DAC同步电路
- 在更新事件(计数器溢出)时产生中断/DMA请求
时钟源
定时器的核心就是计算器,要实现计数功能,首先需要有一个时钟源。基本定时器挂载在APB1总线上,但是基本定时器的时钟并不是由APB1总线直接提供的,而是经过一个倍频器,当APB1的预分频器系数为1时,定时器时钟频率等于APB1的时钟频率,当APB2预分频器系数>=2时,定时器时钟频率等于APB1总线的2倍。
频率计算公式
定时原理
产生一个时钟,定时计数器的值+1,当定时器的计数寄存器中的值与自动重装自寄存器的影子寄存器值相等时,定时器溢出。由硬件产生中断,此时定时器的计数值会被自动清零,但是中断标志位需要软件清零。
寄存器
控制寄存器1(TIMX_CR1)
- 该寄存器的复位值为:0x0000
- ARPE:自动重装载使能位
为0时,代表设置TIMx_ARR的值后会立即更新到影子寄存器中。
为1时,表示产生下一个中断后,TIMx_ARR的值才会被更新到影子寄存器中。 - CEN:计数器使能
控制器2(TIMx_CR2)
- 主从模式选择
DMA/中断使能寄存器(TIMx_DIER)
- 使能中断或DMA
状态寄存器(TIMx_SR)
- 中断更新标志,发生中断时由硬件置1,然后执行中断服务程序,需要软件清零,如果该为不清零,则会一直进入中断。
事件寄存器
- 查看是否产生时间更新
计数器(TIMx_CNT)
- 定时器的计数值
预分频器(TIMx_PSC)
- 设置计数器+1的时间有关,如果是要7200分频,则改寄存器写入7199。写入的分频值为0 ~ 65535,分频值为1 ~ 65536.
自动重装载计数器(TIMx_ARR)
- 计数器的值和ARR寄存器影子寄存器进行比较,当两者相等,定时器会溢出,从而产生更新事件,如果打开中断,还会产生更新中断。