一、基本定时器介绍
在STM32中,基本定时器有TIM6、TIM7等。基本定时器主要包含时基单元,提供16位的计数,能计数0~65535。基本定时器除了计数功能以外,还能输出给DAC模块一个TRGO信号。基本定时器框图如下:
二、时基单元介绍
STM32的所有定时器都具备时基单元,时基单元的功能就是简单的计数,即计数时钟源TMxCLK的脉冲个数,这个时钟源来至APB1总线。高级和通用定时器还可以使用其他的时钟源进行计数,在高级定时器和通用定时器中会详细介绍。在基本定时器框架中可知时基单元包含如下三个部分:
1.ARR 自动重装载寄存器
2.CNT 计数器
3.PSC 预分频器
基本定时器的定时(计数)功能配置如下:
void TIM6_IRQHandler(void)
{
static int counter = 0;
if(TIM_GetITStatus(TIM6,TIM_IT_Update))
{
//在设置TIM_SelectOnePulseMode(TIM6,TIM_OPMode_Single);后中断进去两次
TIM_ClearITPendingBit(TIM6,TIM_IT_Update);
}
}
//基本定时器
void TIM6_Configuration()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); //时钟使能