【问题标题】:Problems with ws2812 module. init() is nil, write() does not work as documentedws2812 模块的问题。 init() 为 nil,write() 不像记录的那样工作
【发布时间】:2016-09-21 22:45:37
【问题描述】:

我正在尝试使用 ESP8266 和 nodeMCU 固件的 Adafruit neopixel 阵列。

使用以下自定义构建:

由 frightanic.com 定制的 NodeMCU
分支:主
提交:c8037568571edb5c568c2f8231e4f8ce0683b883
SSL:错误
模块:bmp085,file,gpio,i2c,net,node,tmr,uart,wifi,ws2812
构建于:2016-05-24 13:48
由 SDK 1.4.0 上的 Lua 5.1.4 提供支持

当我打电话给ws2812.init() 时,这是我在 ESPlorer 中得到的:

> ws2812.init();
stdin:1: attempt to call field 'init' (a nil value)
stack traceback:
    stdin:1: in main chunk

当调用ws2812.write() 时,我得到这个输出:

> ws2812.write(string.char(255,0,0,255,0,0));
stdin:1: bad argument #1 to 'write' (number expected, got string)
stack traceback:
    [C]: in function 'write'
    stdin:1: in main chunk

看起来,模块 ws2812 以任何形式存在,但具有不同的签名,如文档所示 (https://nodemcu.readthedocs.io/en/dev/en/modules/ws2812/)。

有什么想法吗? 谢谢,格德

【问题讨论】:

  • 好的,文档似乎与固件生成器不同步...执行这种方式的写入工作:ws2812.write(4, string.char(255, 255, 0))
  • 文档用于开发分支,您拥有主分支固件。
  • 您需要更多反馈吗?如果没有请close它。
  • 函数调用中的4是什么?
  • 解决了,它的输出引脚

标签: lua esp8266 nodemcu


【解决方案1】:

您显然使用http://nodemcu-build.com/ 构建了您的固件(免责声明:这是我的网站)。它允许您选择 NodeMCU 固件分支,当前为 masterdev

您发布的文档链接适用于 dev 分支 (/en/dev/en/modules/...)。 RTD 自动将您转发到dev 分支,因为我们的修订文档还没有在主分支中。如果您关心这一进展,您可能想关注https://github.com/nodemcu/nodemcu-firmware/issues/1146

所以,只需从 dev 分支获取固件即可。

【讨论】:

    猜你喜欢
    • 2018-10-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    相关资源
    最近更新 更多