• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请问单片机的main函数是执行一次,还是会反复执行?

80079af684cb5486 2019-08-28 浏览量:5194
请问单片机的main函数是执行一次,还是会反复执行?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 作为入口函数,正常情况下,main在单片机中只加载一次,单片机程序一直执行是一般是依靠内部的其他机制来实现主要功能部分持续进行,而不是靠不断加载main来实现。


    最简单的就是在main的最后有一个跳转语句跳到main的开始,或者直接内部是一个死循环。


    • 发布于 2019-08-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 一般情况下,main函数内部是一个while循环,会一直不停的执行。不过之前我测试,在main函数中没有加上while语句时,也会重复不停的执行。
    • 发布于2019-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • main没有死循环的话,PC计数器在main结束后会继续运行。51的话,到falsh最后一条指令后会回到地址0处开始执行。arm的话运行到非法地址会进入fault中断。
    • 发布于2019-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 重复执行,加while(1)把他固定在一个循环内,要不像初始化那些函数会来回初始化
    • 发布于2019-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 从单片机执行的结果来看,main函数是一直在运行的,走完整个程序段之后,只要上电的情况就执行着main函数,如果有等待指令,那么就一直等到指令出发后再继续执行
    • 发布于2019-08-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 会重复执行,也就是第一次main执行完会复位,从头再来一遍,一直循环
    • 发布于2019-09-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 正常情况都是运行一次,如果没有死循环,指针就会指向空地址造成异常,有的单片机会复位,造成反复执行的假象
    • 发布于2019-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般单片机从main函数进入,执行完了之后再从头执行,但是没有必要,一般都是在main里面写一个死循环,让该执行的函数在这个死循环里面执行,初始化的函数写在死循环的前面
    • 发布于2019-09-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

请问单片机的main函数是执行一次,还是会反复执行?