加个循环是为了让单片机反复执行,如果不加循环,单片机执行完你这些程序后,还会继续往后面跑的,但后面的空闲的flash里的内容按指令执行的话,往往都是不会产生什么外部输出,也不影响程序执行流程的指令,虽然也有几十K,但是以单片机的工作频率,单片机在毫秒级的时间内就会执行完,执行完成后,硬件逻辑会让单片机重头开始执行,所以看上去效果也是在循环,和加个while循环差不多。
但是后面的空闲flash的内容有一定的不确定性,所以实际做产品的时候不要这么干。
需要死循环,否则程序很快执行完成就不动了。
你是不是把代码写进中断响应程序里了
如果你的主要逻辑都在中断里,主程序是可以退出的
一般来说,中断函数里只应该处理io输入和内存操作
中断中将参数另存到全局变量里之后
主函数再判断全局变量,然后进行后续操作
这样可以避免中断时间过长
但是如果你的程序只是简单的判断按钮,输出到灯,全部是io操作
io是硬件线路直连的,不存在串口这种需要耗时的操作
所以全写在中断里问题也不大