首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino - PROGMEM a avr/pgmspace.h

Arduino - PROGMEM a avr/pgmspace.h
EN

Stack Overflow用户
提问于 2020-07-21 16:59:09
回答 1查看 627关注 0票数 1

我试着用程序来代替静态字符来节省一些有价值的空间。一切似乎都很好,但串行和液晶显示一些奇怪的换行符,而不是我的文字。

我想做的事:

代码语言:javascript
复制
...
#include <avr/pgmspace.h>
const static char PROGMEM textSDFailed[]        = "Filesys failed";
const static char PROGMEM textSDAvailable[]     = "Filesys is avail.";
...
lcd.print(textSDFailed);
...

以及打印时我在液晶显示器上得到的信息:https://imgur.com/2waPkgZ

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-21 18:06:27

您可以使用print,它接受一个逐行字符串。用于方案字符串的重载print__FlashStringHelper*作为参数。这通常是针对Arduino F()宏的。

为了重复使用演员,我做:

代码语言:javascript
复制
#define FSH_P const __FlashStringHelper*

然后我用这个方法:

代码语言:javascript
复制
  lcd.print((FSH_P) textSDFailed);

如果可以,直接使用F宏:

代码语言:javascript
复制
  lcd.print(F("Filesys failed"));
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63019407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档