①使能定时器时钟
RCC_APB1PeriphClockCmd();
②初始化定时器,配置ARR,PSC
③开启定时器中断,配置NVIC。
Void TIM_ITConfig();
NVIC_Init();
④使能定时器
TIM_Cmd();
⑤编写中断服务函数
TIMx_IRQHandler();
定时器参数初始化:
void TIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitType*TIM_TimeBaseInitStruct);
typedef struct
{
uint16_t TIM_Prescaler;
uint16_t TIM_CounterMode;
uint16_t TIM_Period;
uint16_t TIM_ClockDivision;
uint8_t TIM_RepetitionCounter;
}TIM_TimeBaseInitTypeDet;
TIM_TimeBaseStructure.TIM_Period=4999;
TIM_TimeBaseStructure.TIM_Prescaler=7199;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_up;
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);