在Arduino上存储字符串的最佳方式是什么?

在Arduino上存储字符串的最佳方式是什么?,arduino,webserver,Arduino,Webserver,我的Arduino上有一个web服务器,它应该呈现一个表单以将一些数据保存到服务器。HTML数据大约有1500个字符。目前,我的代码如下所示: [...] serverClient.println("HTTP/1.1 200 OK"); serverClient.println("Content-Type: text/html"); serverClient.println("Connnection: close"); serverClient.println(); serv

我的Arduino上有一个web服务器,它应该呈现一个表单以将一些数据保存到服务器。HTML数据大约有1500个字符。目前,我的代码如下所示:

[...]
  serverClient.println("HTTP/1.1 200 OK");
  serverClient.println("Content-Type: text/html");
  serverClient.println("Connnection: close");
  serverClient.println();
  serverClient.println("<!DOCTYPE html>");
[...]
但这需要更多的闪存

使用第二种方法有什么好处吗?还是有更好的解决方案


(我不能用a来存储数据。)

这是闪存使用和RAM使用之间的折衷,在这些微控制器上闪存的数量比RAM多得多

除非我的Arduino草图内存不足,否则我通常不会在flash中存储字符串。不幸的是,要判断草图是否需要比可用内存更多的内存并不容易——没有编译警告,事情就是不起作用,或者你会有奇怪的行为。在这种情况下,我找到一些可以暂时缩短的数组,然后再次编译草图。如果事情表现得更好,我知道我在某处内存不足,所以我会去寻找我可以
PROGMEM
的东西,或者考虑另一种使用更少内存编写程序的方法

[...]
  serverClient.println(F("HTTP/1.1 200 OK"));
  serverClient.println(F("Content-Type: text/html"));
  serverClient.println(F("Connnection: close"));
  serverClient.println();
  serverClient.println(F("<!DOCTYPE html>"));
[...]