社区导航

 

搜索
查看: 7239|回复: 4

[求助] STM32定时器中断为什么不能直接在while中判断中断标志位

[复制链接]

415

TA的帖子

8

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-5-9 14:22 | 显示全部楼层 |阅读模式
为什么这个不行
while(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)
        {
            MCU_1_LED=!MCU_1_LED;
       }   

而这么设置就行?
    while(1)
    {
        if(Flag == 1)
        {
            MCU_1_LED=!MCU_1_LED;
            Flag = 0;
        }        
    }   

此帖出自stm32/stm8论坛

回复

使用道具 举报

357

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-5-9 16:40 | 显示全部楼层
要想进入定时器中断是不是  要在死循环里等待,而且还要判断标志位是否成立 这两个条件缺一不可?

回复

使用道具 举报

3602

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-5-10 10:23 | 显示全部楼层
没清中断标志就卡死机了

回复

使用道具 举报

1777

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2018-5-10 10:36 | 显示全部楼层
第一种方式适用于关闭定时器中断使能的情况,否则while里基本是是不会等到条件成立的

回复

使用道具 举报

891

TA的帖子

1

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-6-15 13:42 | 显示全部楼层
中断时间处理完之后一定要记得把中断标志位给清除了,不然会一直卡在中断里面出不来,然后其他什么都做不了了,

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-4 08:38 , Processed in 0.186889 second(s), 25 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表