中级会员
 
- 积分
- 200
- 金钱
- 200
- 注册时间
- 2015-12-26
- 在线时间
- 54 小时
|
发表于 2016-3-19 11:02:06
|
显示全部楼层
void MyTimer2_Init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseStructure.TIM_Period = num;
TIM_TimeBaseStructure.TIM_Prescaler =4;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0000;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
//TIM_PrescalerConfig(TIM2,71,TIM_PSCReloadMode_Immediate);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //使能TIM输出
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_Pulse = TIM_TimeBaseStructure.TIM_Period/2;
TIM_OC1Init(TIM2,&TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);
//TIM_PrescalerConfig(TIM2, 0xEA5F, TIM_PSCReloadMode_Immediate);
#ifdef VECT_TAB_RAM
NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
#else
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);
#endif
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_ARRPreloadConfig(TIM2, ENABLE);
TIM2->CR1|=0x01; //使能计数器
TIM_Cmd(TIM2,ENABLE);
}
void TIM2_IRQHandler(void)
{
if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
{
step=step+1;
}
TIM_ClearITPendingBit(TIM2 , TIM_IT_Update);
}
void run(void)
{
if(step>2000)
{
TIM_Cmd(TIM2,DISABLE);
}
}
void RCC_Configuration(void);
void GPIO_Configuration(void);
//void ADC1_Mode_Config(void);
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
MyTimer2_Init();
TIM2_IRQHandler();
run();
} |
|