中级会员
 
- 积分
- 278
- 金钱
- 278
- 注册时间
- 2016-9-13
- 在线时间
- 73 小时
|
暂时没有想到好的办法,大家想到更好的方法可以跟帖留言
tim2的配置
[mw_shl_code=c,true]void TIM2_Config(u16 arr,u16 pre)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_TimeBaseInitStructure.TIM_ClockDivision=0;
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period=(arr-1);
TIM_TimeBaseInitStructure.TIM_Prescaler=(pre-1);
TIM_TimeBaseInitStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM2, ENABLE);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
}[/mw_shl_code]
tim2的中断服务函数
[mw_shl_code=c,true]void TIM2_IRQHandler(void)
{
static u8 led=0,led2=0;
static u8 flag=0;
if(TIM_GetITStatus(TIM2, TIM_IT_Update)==1)
{
flag++;
led=~led;
if(led==0)
{
LED1_ON();
}
else
{
LED1_OFF();
}
if(flag==2)
{
led2=~led2;
flag=0;
}
if(led2==0)
{
LED3_ON();
}
else
{
LED3_OFF();
}
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
}
}
[/mw_shl_code]
|
|