下定時器初始化配置
1 void TIM3_Configuration(void)//1MS
2 {
3 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
4
5 TIM_DeInit(TIM3);//開一下時鐘再關閉
6 /* 設置TIM2CLK 為 72MHZ */
7 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE);
8
9
10 /* 自動重裝載寄存器周期的值(計數(shù)值) */
11 TIM_TimeBaseStructure.TIM_Period=1000-1;
12
13 /* 累計 TIM_Period個頻率后產生一個更新或者中斷 */
14 TIM_TimeBaseStructure.TIM_Prescaler= 71;
15 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;/* 時鐘預分頻數(shù)為72 */
16 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
17 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
18
19 TIM_ClearFlag(TIM3, TIM_FLAG_Update);
20 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
21 TIM_ARRPreloadConfig(TIM3, ENABLE);
22 TIM_Cmd(TIM3, ENABLE);
23
24 }
NVIC配置
void TIM3_NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
正常情況下是先配置好定時器參數(shù)設置,再配置NVIC中斷-》使能中斷。