51单片机的main函数中,不加死循环,会重复执行main
51单片机的main函数中,不加死循环,会重复执行main。我在做分别点亮两个LED时,我是让他们一个先点亮一,后又灭。下一个点亮。我不加while(1)。则是想要实现的。但是不加whlie(1),他便会循环点亮闪烁。
是不是,循环执行main,又是什么原因?这个执行的过程是什么?
[解决办法]
没有while循环,程序跑完主函数后就失去控制,没多久就会被软复位,重新进入到主函数,类似于重复启动->运行->结束 软复位(可能是看门狗的功劳,我也不是太懂)
[解决办法]
很典型的,只要是前后台系统,基本都是死循环。如果有OS那你可以不管这个。程序跑飞了,反复重启结果出现了你希望的循环点亮的结果,那其实是你的代码不对。另外不要指望程序都能跑飞了能自重启,再说这种写法也太不正规了。要想研究为什么重启,可以看看是不是启动代码中的调用main()后的代码导致的重启,还是看门狗复位,还是怎么的软复位。不过这个问题感觉没有太大意义去研究,对于新手来说。