所以我试图在我的 Arduino 的程序内存中存储一个多维 CHAR 数组,但我在让它工作时遇到了问题。这就是我所拥有的...
typedef unsigned char RGBBitmap[8][8][3];
typedef prog_uchar ProgRGBBitmap[8][8][3]; // Have to use prog_uchar for stuff stored in progmem
ProgRGBBitmap Mailbox[3] PROGMEM =
{
... // some initializing data
};
根据 PROGMEM 文档,要获取指向 char 数据的指针,您应该使用 pgm_read_word 调用。但是,当我尝试使用此功能将其读回时...
RGBBitmap * pMailbox0 = (RGBBitmap*)pgm_read_word( &Mailbox[0] );
...我得到的只是垃圾。
如果我删除 PROGMEM 行并且只使用 RGBBitmap 指针并删除 pgm_read_word,它可以工作,但是它在 RAM 中,我已经用完了。
那么我在这里错过了什么?