Arduino - PROGMEM a avr/pgmspace.h 有问题
Arduino - Trouble with PROGMEM a avr/pgmspace.h
我试图在静态字符上使用 progmem 来保存一些有价值的东西 space。一切似乎都很好,但串行和液晶显示一些奇怪的换行符而不是我的文本。
我想做什么:
...
#include <avr/pgmspace.h>
const static char PROGMEM textSDFailed[] = "Filesys failed";
const static char PROGMEM textSDAvailable[] = "Filesys is avail.";
...
lcd.print(textSDFailed);
...
以及打印时我在 lcd 上看到的内容:
https://imgur.com/2waPkgZ
有人可以帮助我吗?
您可以使用带有程序字符串的 print
。 progmem 字符串的重载 print
具有 __FlashStringHelper*
作为参数。这通常用于 the Arduino F() macro.
为了重复使用我做的演员表
#define FSH_P const __FlashStringHelper*
那我就这样用
lcd.print((FSH_P) textSDFailed);
可以的话,直接用F宏:
lcd.print(F("Filesys failed"));
我试图在静态字符上使用 progmem 来保存一些有价值的东西 space。一切似乎都很好,但串行和液晶显示一些奇怪的换行符而不是我的文本。
我想做什么:
...
#include <avr/pgmspace.h>
const static char PROGMEM textSDFailed[] = "Filesys failed";
const static char PROGMEM textSDAvailable[] = "Filesys is avail.";
...
lcd.print(textSDFailed);
...
以及打印时我在 lcd 上看到的内容: https://imgur.com/2waPkgZ
有人可以帮助我吗?
您可以使用带有程序字符串的 print
。 progmem 字符串的重载 print
具有 __FlashStringHelper*
作为参数。这通常用于 the Arduino F() macro.
为了重复使用我做的演员表
#define FSH_P const __FlashStringHelper*
那我就这样用
lcd.print((FSH_P) textSDFailed);
可以的话,直接用F宏:
lcd.print(F("Filesys failed"));