一、基本定时器概念内容
基本定时器(Basic Timer)是一种用于计时或产生周期性定时中断的硬件定时器。它通常由计数器和相关的控制寄存器组成。而在STM32F40x 中的基本定时器包括TIM6和TIM7,下面就以这两个定时器展开说明。
二、TIM6和TIM7简介
基本定时器TIM6和TIM7包含一个16位自动重载计数器,该计数器由可编程预分频器驱动。此类定时器不仅可用作通用定时器以生成时基,还可以专门用于驱动数模转换器(DAC)。实际上,此类定时器内部连接到DAC并能够通过其触发输出驱动DAC。
这些定时器彼此完全独立,不共享任何资源。
三、TIM6和TIM7的主要特性
1、16位自动重载递增计数器
2、16位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于1和65536之间
3、用于触发DAC的同步电路
4、发生如下更新事件时会生成中断/DMA请求:计数器上溢
其基本定时器框图如下所示:
由图进行分析可知:
设计时间:分频---给重装载写值---打开计数---开始递增计数---计数完成---触发中断
自动重装载和预分频有影子寄存器---影子相当于缓冲器---获得对应寄存器的值,所有预分频、自动重装载只是间接操作定时器,定时器得到的值是影子寄存器的值。
四、TIM6和TIM7功能说明
1、时基单元
时基单元是指可编程定时器的主要模块由一个16位递增计数器及其相关的自动重载寄存器组成。计数器的时钟可通过预分频进行分频。
计数器、自动重载寄存器和预分频器寄存器可通过软件进行读写。即使在计数器运行也可执行读写操作。
时基单元包括:计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)和自动重载寄存器(TIMx_ARR)。其中,自动重载寄存器是预装载的。每次尝试对自动重载寄存器执行读写操作时,都会访问预装载寄存器。预装载寄存器的内容既可以直接传送到影子寄存器,也可以在每次发生更新事件UEV时传送到影子寄存器,这取决于TIMx_CR1寄存器中的自动重载预装载使能位(ARPE)。当计数器达到上溢值且TIMx_CR1寄存器中的UDIS位为0时,将发送更新事件。该更新事件也可以由软件产生。
计数器由预分频器输出CK_CNT提供时钟,仅当TIMx_CR1寄存器中的计数器启动位(CEN)置1时,才会启动计数器。
2、预分频器说明
预分频器可对计数器时钟频率进行分频,分频系数介于1和65536之间。该预分频器基于TIMx_PSC寄存器中的16位寄存器所控制的16位计数器。由于TIMx_PSC寄存器有缓冲,因此可对预分频器进行实时更改。而新的预分频比将在下一更新事件发生时被采用。图1和图2 给出了在预分频比实时发生变化时