打印

本人是新手问个问题

[复制链接]
1138|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
杨思超|  楼主 | 2013-11-13 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
野火的开发板里面怎么开中断?就想TIM1_IRQHandler(void) 里面要写什么函数 我找了里面没有  还要添加
沙发
linfeng24| | 2013-11-14 00:31 | 只看该作者
第一步,你得开定时器的时钟,如RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
第二步,你得配置定时器具体参数,如
    TIM_DeInit(TIM2);
    TIM_TimeBaseStructure.TIM_Period=1000;                                                                                 /*
    TIM_TimeBaseStructure.TIM_Prescaler= (72 - 1);                                 
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;                
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
    TIM_ClearFlag(TIM2, TIM_FLAG_Update);                                                                   
    TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
第三步,使能TIM2 ,TIM_Cmd(TIM2, ENABLE);       

第四步,配置中断优先级,
    NVIC_InitTypeDef NVIC_InitStructure;
   
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);                                                                                                         
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;          
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;       
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

第五步,写中断服务函数,即定时器时间到后进入中断后要处理什么事情——
void TIM2_IRQHandler(void)
{
        if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
        {       
                TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);   
                   time++;
        }                        
}

使用特权

评论回复
板凳
SLHSu37| | 2013-11-14 07:55 | 只看该作者
linfeng24 发表于 2013-11-14 00:31
第一步,你得开定时器的时钟,如RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
第二步,你得配置 ...

严重支持!!

使用特权

评论回复
地板
outstanding| | 2013-11-14 08:15 | 只看该作者

使用特权

评论回复
5
sidafuzhihe| | 2013-11-14 11:53 | 只看该作者
看手册

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

粉丝