Timer的Prescaler和period
TM32定時器周期計算
公式是:
((1+TIM_Prescaler )/時鍾)(1+TIM_Period )
F103配置生成1ms的時鍾((1+35 )/36M)(1+999 ) = 1MS
//配置定時器基礎結構體
TIM_DeInit(TIM2);
//設置下一個更新事件裝入活動的自動重裝載寄存器周期的值,計數到1000為1ms
/*1us跳1下
那么跳動1000下當然需要1ms了*/
TIM_TimeBaseStructure.TIM_Period=(1000-1);
//設置用來作為Tim時鍾頻率除數的預分頻值 1M的技術頻率1US計數
/*假設系統時鍾為72M
72,000,000
1,000,000
1秒跳動1,000,000下
1us跳1下*/
TIM_TimeBaseStructure.TIM_Prescaler=(72-1);
//不分頻
TIM_TimBaseStructure.Tim_ClockDivision=TIM_CKD_DIV1;
//向上計數模式
TIM_TimBaseStucture.TIM_CounterMode=TIM_CounterMode_UP;
//根據TIM_TimBaseStructure中指定的參數初始化TIMx的時間基數單位
TIM_TimBaseInit(TIM6,&TIM_TimBaseStructure);
//清除更新中斷,免得一打開中斷就產生中斷
TIM_ClearFlag(TIM6,TIM_FLAG_Update);
//打開定時器更新中斷
TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);
