定时器的相关知识百度,这里主要提出配置函数
一.定时器的初始化:
TIM2_Int_Init(u16 arr,u16 psc);
内部函数:
定时器和中断的结构体初始化
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
1.时钟初始化
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
2.定义结构体初始化时钟参数
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
3.使能定时器中断(定时器2,向上计数,使能)
TIM_ITConfig(
TIM2,
TIM_IT_Update ,
ENABLE
);
4.中断优先级设置
NVIC_Init(&NVIC_InitStructure);
5.使能定时器2外设
TIM_Cmd(TIM2, ENABLE);
二. 中断函数
TIM2_IRQHandler(void)
1..获取中断状态
TIM_GetITStatus(TIM2, TIM_IT_Update) == SET;
2.请中断标志位
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
主函数调用:
设置中断优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
定时器的初始化
TIM2_Int_Init(4999,7199); //(4999+1)*(7199+1)/72000000