저는 Arduino IDE를 사용하여 progmem에 저장된 데이터를 함수로 전달하는 스케치를 작성한 후 progmem 데이터를 로컬 배열에 씁니다. 코드는 다음과 같습니다 :포인터가 함수로 전달되었습니다.
const uint8_t Data_3 [256] PROGMEM = {0x11, 0x39.....}
void setup() {
Serial.begin(57600);
Data(Data_3, 0x00, 256);
}
void loop() {
}
void Data(const uint8_t *data, uint8_t bank, uint16_t bytes) {
uint8_t buff1 [256];
buff1[0] = data[0];
Serial.println(buff1[0],HEX); // <--Works fine prints the correct value
for (uint16_t x = 0; x < bytes + 1; x++) {
buff1[x] = data[x];
Serial.println(buff1[x],HEX); // <--Just prints garbage
}
}
내가 buff1[0] = data[0]
를 할당하고 대답은 올바른 결과를 인쇄 할 때. buff1[x] = data[x]
으로 인쇄 기능을 반복 할 때 나는 쓰레기 만 가져옵니다. 누구든지이 이유를 알고 있습니까?
하여 버퍼에 복사 루프하지 바이트 +1 – pm100
에 대한 data'는 동일한 유형이없는''buff1'을하고 왜? 이것은 다른 여유를 나타내는 지표입니까? –
왜 바이트일까요? 네, 느슨한, 실수. – hoboBob