RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);
void pwm_configuration(void)
{
TIM_DeInit(TIM2);
TIM_TimeBaseStructure.TIM_Prescaler = 0; //timmer frequency=(72/4)/(prescaler+1)=18mhz
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //tim module up counter
TIM_TimeBaseStructure.TIM_Period = 999;//reload number
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // init timer1
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OC2Init(TIM2, & TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM2,TIM_OCPreload_Enable);
TIM_Cmd(TIM2, ENABLE);
}
main(void)
{
RCC_Configuration();
GPIO_Configuration();
pwm_configuration();
while(1)
{
TIM_SetCompare2(TIM2,1000);
}