有关中断执行过程
这里有个死循环在等中断
在中断里会清空这个标志,请问这样写会使while失效吗?
现在的现象有时运行正常,又是就卡死了
会的,这样会有很大概率进入死循环的 保证中断触发的时间内,加个超时退出:
a = 0;
while(!DMA_UR1T_STA){
//这里写个累加计算,超过一段时间,强行退出
//delay(xxx);
if(++a == 0) break;
}
xiangzichen 发表于 2024-5-19 17:20
保证中断触发的时间内,加个超时退出:
a = 0;
while(!DMA_UR1T_STA){
已找到更优解了,谢谢 在外部程序(非中断程序)查询等待某个中断标志非0,而中断中又清除这个中断标志,则有很大的概率会死在等待上。如果要查询,则另外设置一个变量,查询这个变量,并在中断中清除这个中断标志后设置这个变量。
在项目程序中,不建议出现任何死等的代码,测试例子可以使用。
页:
[1]