探究起源
- RTT编程时, 使用了
while(1);
导致看门狗无法及时被喂. - yyds 的
Hello world!
中便使用了while(1); 去停止程序.
用途
while(1);
用途 :
- 检测之前代码是否OK
- 有些代码执行到错误后, 会抛出错误(打印, 设置错误码), 然后进入 while(1);
- 机器需要复位, 停止看门狗, 进入while(1), 迫使看门狗超时, 硬件复位
while(1){...}
用途
- 没有操作系统的单片机, 一般都使用的框架
- 操作系统中, 执行某项任务
- {…} 一直检测条件, 符合可
break;
跳出
程序跑飞 原因 措施
程序执行完后, PC
- 程序指针不会停止, 会继续从 ROM
中读取指令并执行, 所以会出现不确定结果, 程序跑飞, 加 while(1);
让程序在原地停止(原地循环)