找回密码
 立即注册
查看: 989|回复: 4

有关中断执行过程

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2026-05-06 16:22:30
已绑定手机

278

主题

424

回帖

2307

积分

金牌会员

积分
2307
发表于 2024-5-19 09:08:40 | 显示全部楼层 |阅读模式
{SL29X7]P~09X(0Z)U5N59A.png


这里有个死循环在等中断

41]EB(YRQI[6IF1`_QH@~PU.png


在中断里会清空这个标志,请问这样写会使while失效吗?
现在的现象有时运行正常,又是就卡死了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:743
  • 最近打卡:2026-05-14 01:16:23
已绑定手机

49

主题

2670

回帖

2792

积分

荣誉版主

积分
2792
发表于 2024-5-19 16:09:11 | 显示全部楼层
会的,这样会有很大概率进入死循环的
~~~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:560
  • 最近打卡:2026-05-14 01:55:53
已绑定手机

16

主题

617

回帖

1625

积分

荣誉版主

积分
1625
发表于 2024-5-19 17:20:26 | 显示全部楼层
保证中断触发的时间内,加个超时退出:
a = 0;
while(!DMA_UR1T_STA){
    //这里写个累加计算,超过一段时间,强行退出
    //delay(xxx);
    if(++a == 0) break;
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2026-05-06 16:22:30
已绑定手机

278

主题

424

回帖

2307

积分

金牌会员

积分
2307
发表于 2024-5-19 20:27:18 | 显示全部楼层
xiangz*** 发表于 2024-5-19 17:20
保证中断触发的时间内,加个超时退出:
a = 0;
while(!DMA_UR1T_STA){

已找到更优解了,谢谢
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2026-05-14 09:59:35

85

主题

7380

回帖

1万

积分

超级版主

积分
15949
发表于 2024-5-24 13:19:44 | 显示全部楼层
在外部程序(非中断程序)查询等待某个中断标志非0,而中断中又清除这个中断标志,则有很大的概率会死在等待上。如果要查询,则另外设置一个变量,查询这个变量,并在中断中清除这个中断标志后设置这个变量。
在项目程序中,不建议出现任何死等的代码,测试例子可以使用。
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-14 18:52 , Processed in 0.106205 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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