标题: 关于STM32F407定时器配置的分享 [打印本页]

作者: zjtwxws    时间: 2018-7-19 14:12
标题: 关于STM32F407定时器配置的分享
void TIM2_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
     NVIC_InitTypeDef NVIC_InitStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);  ///使能TIM2时钟  APB1 42M   定时器时钟2倍频即84M
       
    TIM_TimeBaseInitStructure.TIM_Period = 999;         //自动重装载值arr 定时器时钟84M,分频系数84,所以84M/84=1000Khz的计数频率,计数1000次为1ms   
    TIM_TimeBaseInitStructure.TIM_Prescaler = 83;  //定时器分频psc
    TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
    TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;   
    TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure);//初始化TIM2

    TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //允许定时器2更新中断
    TIM_Cmd(TIM2,ENABLE); //使能定时器2
    TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update); //选择TRGO触发源为计时器更新时间  计数值为0时刻

        //TIM2 系统1ms定时器中断配置
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 7;//这个数越小优先级越高   先占优先级
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//响应优先级
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);  
}

void TIM2_IRQHandler(void)
{
    if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) //溢出中断
    {
        Bootloader1Ms();//系统1ms定时器函数   
    }
    TIM_ClearITPendingBit(TIM2,TIM_IT_Update);  //清除中断标志位
}



作者: zjtwxws    时间: 2018-7-19 14:16
附件为源码

USER.rar

1.01 KB, 下载次数: 8, 下载积分: 黑币 -5






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1