单片机/MCU论坛
直播中

王浩

8年用户 1417经验值
私信 关注
[问答]

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

  main()
{
unsigned char i;
motor = 0; //电机停
for(i = 0; i < 100; i ++)
motor = 1; //电机运行一段时间
motor = 0;//电机停
}
按程序逻辑,电机应该是运行一会就停止的,但是下载到板子之后,电机一直运行。
在程序最后加了while死循环之后,电机才运行一会之后停止。
   请问,单片机的main函数不是只执行一次吗?难道会反复执行?​

回帖(1)

秦文汶

2023-10-23 16:48:19
单片机的程序很少这样开发,除非是做测试。
楼市的理由存在的可能比较大。
这个有些也是你编程内容和编译器综合问题的原因,其实是跑飞了的一种体现。
从你的代码上来看,你的main并没有设置return,好的编译应该据此自动添加返回,如果没有添加返回,则程序可能继续执行而跑飞。
或者添加了返回,但上层调用main的引导部分没有正确设置停机处理,也会跑飞。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分