无法将 Lua 脚本加载到 NodeMCU:无效 node.chipid()

Unable to load Lua Scripts to NodeMCU: Invalid node.chipid()

对于所有这些场景,我都可以通过串行 usb 上传固件和监控。但是在创建我的第一个固件之后,对于所有新固件,我无法使用 nodemcu-tool 上传 Lua 脚本而没有得到以下信息:

错误信息

F:\Development\NodeMCU\helloworld>nodemcu-tool -p COM3 upload init.lua 
[NodeMCU-Tool]~ Unable to establish connection 
[NodeMCU-Tool]~ Invalid node.chipid() Response: 6935962

观察结果

9/6/2019 - 创建了第一个固件以开始开发

9/7/2019 - 创建了一个新固件以使用 adc 和其他好东西

9/8/2019 - 使用最少的模块构建固件

平台与工具

fetchDeviceInfo() 首先在 https://github.com/AndiDittrich/NodeMCU-Tool/blob/master/lib/connector/device-info.js#L9 调用 node.info()。然后它执行 if-else 以确定它在 ESP8266 还是 ESP32 上是 运行。

最近升级到 SDK 3.0 node.info() 已在 PR #2830. See documentation at https://nodemcu.readthedocs.io/en/latest/modules/node/#nodeinfo 中更改。它现在 returns 值脚本不认为来自 ESP8266。然后脚本在 else 分支中调用 node.chipId()。因此,它从 ESP8266 获取芯片 ID,但它是 expecting 来自 ESP32 的芯片 ID。因此,例外。

I have no idea what "Response: 6935962" means. Is that my chip id or an error code?

这是你的芯片id。

长话短说:NodeMCU-Tool 需要按照上面的布局进行调整,才能与当前的 NodeMCU 版本一起使用。

我在最近的云构建 (https://nodemcu-build.com/) 中缓存了同样的问题。当我切换回旧版本时它会起作用。看起来像是构建系统或最新源代码的问题。您可以切换到其他构建方法并尝试使用旧代码。