Cyb*_*771 5 memory string macros arduino
我正在研究一个 Arduino 项目,该项目将随机报价打印到 LCD 屏幕。大约有一百种不同的引用,但其中超过 10 种会使 SRAM 过载。
我已经研究过它,似乎我需要使用PROGMEM或F()将字符串存储在闪存而不是 SRAM 中,但我无法弄清楚要存储的语法,然后检索它们。当前程序看起来像这样(删除不相关部分的伪代码):
String quotes[] = {"quote 1", "quote2", "quote3", ... "quoteN"};
String currentQuote;
void setup() {
currentQuote = quotes[0];
}
void loop() {
if (condition)
currentQuote = quotes[random(N)];
}
Run Code Online (Sandbox Code Playgroud)
如何将字符串数组存储在闪存中,然后在需要时检索单个元素?
我在代码中看到 String 类支持 F()。但我不知道如何使用它。
我建议查看http://arduino.cc/en/Reference/PROGMEM它很好地解释了 PROGMEM 的使用并且与您的应用程序相关。我认为 PROGMEM 更原始地适用于 char 字符串,而不是 String。