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

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

80079af684cb5486 2019-04-14 浏览量:8475
单片机的main函数是执行一次,还是会反复执行?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 在单片机系统中,main函数是程序代码真正执行自己代码的地方,这个地方通常都是执行一次,并且在函数内部执行无限循环,不在退出其中无限循环。

    比如:

    int main()

    {

        for(;;)   //这里无限循环

        {

            sendbuff(); 

        }

    }

    当然这是裸机代码,如果有了RTOS,情况可能会有所区别,比如可能会产生多个无限循环(多个任务)。

    • 发布于 2019-04-15
    • 举报
    • 评论 0
    • 3
    • 0

其他答案 数量:18
  • 不会执行多遍,在单片机应用里面,一般在末尾加上while(1)
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • main()函数是 整个c程序执行的开始 和 结束

    如果没有while作为循环,那进入main执行其中的程序完成之后,就结束了

    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个刚开始我也这样做过,不加while循环的话,会出现程序跑飞,进入硬件错误中断
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 确切说main函数应该只执行一次。main函数作为程序的入口开始,如果里面没有while循环,就直接运行结束了。

    所以一般单片机程序都要加while循环,反复执行,但是while循环外的语句只执行一次。

    遇到单片机复位,会重新进入Main函数,然后再进入while循环。

    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果不在main里面加循环体,那么代码执行到最后会停止,就和死机差不多
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • main函数时C语言的入口,如果有C语言和汇编的的混合编程你可以控制程序的跳转,可以跳转到任何地方,main函数的执行也是由你控制,不过一般不会多次执行main一般都是多个while来回的跳转。
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 只是会执行一次的,但是main中 的whilt循环会反复的执行的
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 裸开发中单片机的main默认只运行一次,所以需要一定的策略让程序一直运行:

    1. 利用内部的while(1) 循环,不停重复执行核心代码

    2. 利用一定的机制(计数重置等等),让整个系统到一定情况下复位(重新开始执行)

    这些策略都和程序要达到的目的有关,具体设计。

    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • main只是程序的入口,就只会执行一次,如果里面有循环体也只是会一直执行循环体
    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • main函数是程序代码运行的主体部分,且只运行一次。

    所以在实际代码编程时,我们通常在mian函数中加入while(1)死循环,反复执行程序中需要轮询的主体。

    eg:

    void main()

    {

     while(1)

       {

          程序主体;

       } 

    }

    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • main()的确是执行一次,但我发现有时候程序跑飞了,然后单片机重启,再次执行main()看起来就像是循环执行。。。
    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • main()函数只执行一次,所以一般会在结尾加weile(1);防止main执行完程序跑飞;

    一般会在main()函数加一个while(1){}函数不断循环执行内部的功能函数,实现功能开发

    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 只会执行一次的,main中的无限循环才会不停的执行呢
    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机上电后程序指针PC就会从程序存储器的0地址开始执行
    中间会按照程序的要求跳到需要的地址执行
    如果执行到最后一条指令完而没有相应的跳转指令,PC会继续往存储器的下一地址执行,而下一地址是没有烧写指令进去的这时就出现了跑飞。
    在PC将所有地址都跑一遍之后会回到0地址如此循环。
    一般的都会在main主函数里面最后加一句while(1)。
    • 发布于2019-04-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 对于main函数,只调用了一次,只运行一次,但是main中的循环是要反复运行的,
    • 发布于2019-04-16
    • 举报
    • 评论 0
    • 0
    • 0

  • main函数只会调用那一次,从上往下依次执行,如果有虚幻语句,则会循环执行。
    • 发布于2019-04-16
    • 举报
    • 评论 0
    • 0
    • 0

  • main函数只执行一次,但是main中的while循环是要不停的反复执行
    • 发布于2019-04-16
    • 举报
    • 评论 0
    • 0
    • 0

  • main函数一般是不退出的,里面会有个while函数不断循环

    如果退出了main函数,也会重新再进入一次,相当于执行了一次系统复位

    • 发布于2019-04-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

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