TIM_TimeBaseStructure.TIM_Period = 500-1 ; //设置500us一次TIM2比较的周期
TIM_TimeBaseStructure.TIM_Prescaler = 48 - 1;//48Mhz / 48 = 1Mhz = 1us
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit( TIM2, & TIM_TimeBaseStructure );
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//下面详细说明
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//TIM_OutputState_Disable;
TIM_OCInitStructure.TIM_Pulse = 250;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//如果是PWM1要为Low,PWM2则为High
TIM_OC2Init( TIM2, & TIM_OCInitStructure );
上面的程序实现了在系统时钟为48Mhz、周期为500、分频因子为48、且时钟1分频(就是不分频)时,定时器的频率为2000hz(时钟啥的自己配置) Period的范围为0~65535,Prescaler的范围为0~65535
f = (system clock/prescaler)/Period
=