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

发布于:2024-07-21 ⋅ 阅读:(34) ⋅ 点赞:(0)

转自 解决STM32开启定时器时立即进入一次中断程序问题_stm32f407定时器初始化自动进入一次-CSDN博客

配置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)。。。。。。立即进入更新中断程序。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/YGT666/article/details/79586390/


网站公告

今日签到

点亮在社区的每一天
去签到