【发布时间】:2017-09-06 12:01:21
【问题描述】:
Arduino 上的许多基于 Web/Http 的库都带有自己预定义的 Web 内容,例如
static const char serverIndex[] PROGMEM =
R"(<html><body>....</body></html>)";
除了修改库,有没有办法直接在程序草图中干预变量内容?
问候,
【问题讨论】:
标签: arduino webserver arduino-esp8266
Arduino 上的许多基于 Web/Http 的库都带有自己预定义的 Web 内容,例如
static const char serverIndex[] PROGMEM =
R"(<html><body>....</body></html>)";
除了修改库,有没有办法直接在程序草图中干预变量内容?
问候,
【问题讨论】:
标签: arduino webserver arduino-esp8266
您可以像更改任何其他静态类属性一样更改静态类属性,但不能更改存储在 PROGMEM 中的数据。这就是为什么这个变量也被称为 const 的原因。
PROGMEM 数据存储在闪存中,是草图二进制文件的一部分。
一种可能的解决方案是使用SPIFFS,但这需要更改库代码。
另一种解决方案是编写自己的派生类:参见Are static variables in a base class shared by all derived classes?
但这很混乱,所以恕我直言,改成原来的课程更容易。
【讨论】: