【问题标题】:Keep the memory to last value of the variable将内存保留为变量的最后一个值
【发布时间】:2017-01-09 01:16:33
【问题描述】:

我正在使用 ESP8266,并且正在使用 Lua 语言对其进行编程。我创建了一个 PWM 函数,并在 ESP8266 中创建了一个服务器。我可以通过这个服务器改变 PWM 占空比(你可以看图)。首先,我使用默认值设置为 PWM,并且我正在通过服务器针对我的应用程序更改 PWM。但是当我断开 ESP8266 的电源并重新连接电源时,占空比恢复到默认值。我想保存我通过服务器输入的最后一个 PWM 值,当我断开 ESP8266 的电源并再次连接到电源时,占空比将 PWM 值设置为我通过服务器输入的最后一个值。例如,在下面我将默认 PWM 值设置为“512”,当我针对我的应用程序更改 PWM 时,我保存了最后一个值,并且在重新连接过程之后(我在上面通知)我从内存中获取了最后一个 PWM 值和 PWM 占空比从这个值开始。有没有像 EEPROM 这样的永久存储器可以用来保存最后一个 PWM 值或任何其他人建议的解决方案? (我必须使用Lua语言)

PWM adjusting server

--default PWM value 
pwm.setup(2,1000,512);
pwm.start(2);

【问题讨论】:

    标签: lua esp8266 pwm


    【解决方案1】:

    如果您需要持久化数据以使其在电源循环后仍然存在,那么您必须通过 SPIFFS 文件系统将其写入闪存。来自docs的文件写入示例:

    -- open 'init.lua' in 'a+' mode
    file.open("init.lua", "a+")
    -- write 'foo bar' to the end of the file
    file.write('foo bar')
    file.close()
    

    如果您需要一些不那么永久的东西,那么您可以使用rtcmem module,它提供对 RTC 内存的访问。保存在那里的数据至少可以在深度睡眠中存活下来。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2021-04-07
    相关资源
    最近更新 更多