如何解决NodeMCU (ESP8266) 使用无限循环时无响应而 True
当我在 while True:
中包含 main.py
时,我无法再覆盖它并上传新版本。
许多初学者指南和教程,例如:this one 和 this one,都使用 while True
。所以我想这应该是可能的。
我已经尝试使用 Thonny 和 ampy
来上传(覆盖)main.py,而电路板正在运行无限循环。
我当前的解决方法是使用 picocom
连接到 REPL 并使用 os.remove
删除文件。
Micropython 版本:esp8266-20210618-v1.16
注意。我知道计时器可以减少对无限循环的需求。
解决方法
看看您链接的第一个示例,其中
在引入 while true
循环后准确描述您当前的情况:
您可能会担心看到 >>> REPL 提示再也不会出现并且您无法输入代码。请记住,这是因为 MicroPython 一次只能做一件事,而无限循环意味着开发板正忙于使 LED 闪烁。
幸运的是,您可以告诉董事会停止正在执行的任何操作并返回到 REPL 提示。按键盘上的 Ctrl-c 键,您应该会看到代码停止并出现如下所示的 KeyboardInterrupt 错误:
当你有一个无限循环运行时,没有其他东西可以运行。
如果您希望能够与之交互,则需要退出循环
REPL(例如,这正是 ampy
所做的)。
通过使用 Arduino IDE,您可以使用 Arduino,类似于 C++ 而不是 Python。 NodeMCU 支持 Arduino。 Arduino 中有一个 void loop() {}
部分,您可以将其用作无限循环。 This tutorial 解释得很好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。