while(1)的作用是让单片机在没有中断响应时也保持程序执行,再准确些说是保持“空循环”,有兴趣的话可以看对应的汇编文件,一般是个JMP指令在不断绕圈。
如果没有这个while(1)的话,main()函数执行完timer0Init()后单片机程序会继续向后执行,main()函数结束,程序接下来会不知道要干什么,有可能跑飞,也有可能重启,总之是失控了,所以为了让程序的运行可控,需要有这个while(1)。
这个问题很普遍存在,单步运行时可以通过,但全速运行就卡在那里了,有两种可能:
1)你的程序已经跑飞了,在你的肉眼看不出来时,已经停止了。你需要修改一下程序
2)里面涉及中断的程序了。
我建议的解决办法
不要使用keil仿真,直接用单片机硬件进行仿真,这样效果会好一点!
以上就是关于keil在编程单片机程序中while(1)的问题全部的内容,包括:keil在编程单片机程序中while(1)的问题、Keil在线编程调试时,为什么单步执行时键盘中断能很好的进入,而在全速执行时,中断就出错了呢、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)