×
单片机 > 单片机程序设计 > 详情

解决STM32开启定时器时立即进入一次中断程序问题

发布时间:2020-09-03 发布时间:
|

配置STM32定时器时,定时器中断使能、定时器使能、清除更新中断标志位,三者不同顺序程序执行时有不同效果,具体如下:


TIM_ClearITPendingBit(TIM1, TIM_IT_Update); //清除更新中断请求位


    TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE); //使能定时器1更新中断


TIM_Cmd(TIM1, ENABLE);                   //启动定时器


         (1)。。。。。。不会立即进入更新中断程序。


    TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位


TIM_Cmd(TIM1, ENABLE); 


    TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断


     (2)。。。。。。不会立即进入更新中断程序。

 

TIM_Cmd(TIM1, ENABLE);


   TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位


  TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断


   (3)。。。。。。不会立即进入更新中断程序。



    TIM_Cmd(TIM1, ENABLE);


    TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断


    TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位


       (4)。。。。。。立即进入更新中断程序。

 

     TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断


   TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位


TIM_Cmd(TIM1, ENABLE);  


  (5)。。。。。。立即进入更新中断程序。

 

     TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断


     TIM_Cmd(TIM1, ENABLE); 


     TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位


  (6)。。。。。。立即进入更新中断程序。





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil(MDK-ARM)系列教程(七)_菜单