您的位置:首页 > 其它

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

2018-03-16 20:37 661 查看
配置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)。。。。。。立即进入更新中断程序。
参考:http://www.51hei.com/bbs/dpj-40940-1.html
         http://www.openedv.com/posts/list/41019.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: