【发布时间】:2018-07-27 12:01:17
【问题描述】:
我正在尝试编写一个简单的程序(作为更复杂程序的前导),它将字节数组存储到 progmem,然后读取并打印该数组。我已经浏览了一百万个在线博客/论坛帖子,并认为我做的一切都很好,但我的输出仍然完全是胡言乱语。
这是我的代码,任何帮助将不胜感激!
void setup() {
byte hello[10] PROGMEM = {1,2,3,4,5,6,7,8,9,10};
byte buffer[10];
Serial.begin(9600);
memcpy_P(buffer, (char*)pgm_read_byte(&hello), 10);
for(int i=0;i<10;i++){
//buffer[i] = pgm_read_byte(&(hello[i])); //output is wrong even if i use this
Serial.println(buffer[i]);
}
}
void loop() {
}
如果我使用memcpy,我会得到输出:
148
93
0
12
148
93
0
12
148
93
如果我在 for 循环中使用 buffer = .... 语句(而不是 memcpy):
49
5
9
240
108
192
138
173
155
173
【问题讨论】:
标签: arrays arduino byte avr progmem