关于STM32程序执行顺序问题,谢谢

2019-07-20 06:38发布

        我有个关于单片机有个疑问,一直不是很明白,希望大佬们能指点一番,谢谢。就是我想把单片机在while循环中执行程序,我一直把它想象成一个人一直在循环的跑,假设在这过程中产生了中断,这个人又去执行中断程序,如果中断程序中有delay延迟函数,比如delay(500),那么在为什么在执行delay(500)过程中,又会单片机中又会产生其他的中断?相当于一个人在执行delay,就是在等待,又没有执行其他的程序,为什么会产生其他中断呢?因为STM32有操作系统吗?还是有些程序是并行执行的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
HXYDJ
1楼-- · 2019-07-20 08:07
 精彩回答 2  元偷偷看……
HXYDJ
2楼-- · 2019-07-20 09:17
单片机在中断中执行延时的时候,如果有新的中断发生当然就会跳到新的中断中去执行。这就是中断嵌套。所以一般中断程序要尽可能的短,避免在中断执行的时候又有新的中断发生。如果中断在执行的时候,不想被打断,那么进入中断的时候,就关闭单片机所有中断,当中断程序执行完之后在打开所有中断。
康君6
3楼-- · 2019-07-20 14:42
HXYDJ 发表于 2018-8-15 13:33
单片机在中断中执行延时的时候,如果有新的中断发生当然就会跳到新的中断中去执行。这就是中断嵌套。所以一 ...

还是谢谢你,不过我的疑问是,假如进入中断,然后马上进入中断中的delay函数,执行delay函数。有可能在执行这个delay的过程中单片机产生其他中断吗?我不明白的是为什么会在执行这个delay的过程会发生其他中断?难道是有操作系统,程序是并行的?

一周热门 更多>