static void TIM4_Init(void)//定時(shí)0.001s鐘中斷一次
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* TIM5 clock enable */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);
/* ---------------------------------------------------------------
TIM4 Configuration: Output Compare Timing Mode:
TIM2CLK = 36 MHz, Prescaler = 7200, TIM2 counter clock = 7.2 MHz
--------------------------------------------------------------- */
/* Time base configuration */
//這個(gè)就是自動(dòng)裝載的計(jì)數(shù)值,由于計(jì)數(shù)是從0開始的,計(jì)數(shù)10000次后為9999
TIM_TimeBaseStructure.TIM_Period = (2000 - 1);
// 這個(gè)就是預(yù)分頻系數(shù),當(dāng)由于為0時(shí)表示不分頻所以要減1
TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1);
// 高級(jí)應(yīng)用本次不涉及。定義在定時(shí)器時(shí)鐘(CK_INT)頻率與數(shù)字濾波器(ETR,TIx)
// 使用的采樣頻率之間的分頻比例
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
//向上計(jì)數(shù)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
//初始化定時(shí)器5
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
/* Clear TIM5 update pending flag[清除TIM5溢出中斷標(biāo)志] */
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
/* TIM IT enable */ //打開溢出中斷
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
/* TIM5 enable counter */
TIM_Cmd(TIM4, ENABLE); //計(jì)數(shù)器使能,開始工作
}
計(jì)算時(shí)間的公式公式
((1+TIM_Prescaler)/72M)*(1+TIM_Period)=T;