在单片机系统中,main函数是程序代码真正执行自己代码的地方,这个地方通常都是执行一次,并且在函数内部执行无限循环,不在退出其中无限循环。
比如:
int main()
{
for(;;) //这里无限循环
sendbuff();
}
当然这是裸机代码,如果有了RTOS,情况可能会有所区别,比如可能会产生多个无限循环(多个任务)。
main()函数是 整个c程序执行的开始 和 结束
如果没有while作为循环,那进入main执行其中的程序完成之后,就结束了
确切说main函数应该只执行一次。main函数作为程序的入口开始,如果里面没有while循环,就直接运行结束了。
所以一般单片机程序都要加while循环,反复执行,但是while循环外的语句只执行一次。
遇到单片机复位,会重新进入Main函数,然后再进入while循环。
裸开发中单片机的main默认只运行一次,所以需要一定的策略让程序一直运行:
1. 利用内部的while(1) 循环,不停重复执行核心代码
2. 利用一定的机制(计数重置等等),让整个系统到一定情况下复位(重新开始执行)
这些策略都和程序要达到的目的有关,具体设计。
main函数是程序代码运行的主体部分,且只运行一次。
所以在实际代码编程时,我们通常在mian函数中加入while(1)死循环,反复执行程序中需要轮询的主体。
eg:
void main()
while(1)
程序主体;
main()函数只执行一次,所以一般会在结尾加weile(1);防止main执行完程序跑飞;
一般会在main()函数加一个while(1){}函数不断循环执行内部的功能函数,实现功能开发
main函数一般是不退出的,里面会有个while函数不断循环
如果退出了main函数,也会重新再进入一次,相当于执行了一次系统复位