【问题标题】:tmr.create() fails in dirt simple codetmr.create() 在简单的代码中失败
【发布时间】:2017-10-17 15:39:36
【问题描述】:

在 ESP8266 上,LUA tmr.create() 失败。仅来自 nodemcu 文档的一行代码。我还没有得到这个工作;难倒;在这里或论坛上没有找到任何东西。发到其他几个地方都没有回复。奇数

基本节点命令有效。而且,这就是让我感动的事情:一些计时器功能可以工作 - 例如 tmr.alarm() 可以 - 但 tmr.create() 不能。

问题 1:如果加载了 tmr 模块,是否加载了整个模块,而不仅仅是部分?

当我尝试直接从 NodeMCU 文档复制的这一行时,它失败了:

local mytimer = tmr.create()

按照通常的信息,我理解的意思是一个对象是未定义的:

stdin:1: attempt to call field 'create' (a nil value)

问题 2:我错过了什么或做错了什么?

Nodemcu 的 flasher 成功发送了它的默认值

内部://NODEMCU @ 0x00000

NodeMCU 0.9.5 build 20150318

该板是 Adafruit Huzzah ESP8266,而不是 NodeMCU 板。我认为他们都使用相同的 ESP12,所以这无关紧要(或者我希望它不会:-/)

【问题讨论】:

  • 如果 tmr.alarm 不是 nil,tmr.create 也不应该是 nil。它们都由固件中的相同功能提供。

标签: lua esp8266 nodemcu


【解决方案1】:

NodeMCU 0.9.5 build 20150318

这是你的罪魁祸首。那个版本很古老。 create() 是在很久以后添加的。从 master 分支构建一个最新版本,https://nodemcu.readthedocs.io/en/master/en/build/(注意 URL 中的master),然后刷新那个版本。

【讨论】:

  • 谢谢,马塞尔。那确实解决了问题!这些 ESP 尤其是 LUA 似乎有很多令人费解的事情和意想不到的障碍——至少当它对你来说相对较新时。 (我写 PIC asm 代码的速度快了很多!:) 当电路板供应商预加载一个非常旧的固件版本时,它也没有帮助,但是然后给出示例代码,当只是稍微调整一下,就会爆炸,因为更新的固件是需要。 %-| (哦,好吧,这就是 hacking 得名的原因,嗯?)
猜你喜欢
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
相关资源
最近更新 更多