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);