0
我已經保存了數據到達槽i2c在一個數組中,我想訪問單個值。當我從保存並打印數組值的函數保存它們的值是好的,當我嘗試從該函數外部訪問它們時,我得到一個「double」值,這意味着在數組中存在一個值「0」重視我的保存。在i2c中的字節指針數組
int byteArray[100];
boolean hoRicevutoDati = false;
void setup() {
Serial.begin(9600); // start serial for output
Wire.begin(SLAVE_ADDRESS);
Wire.onReceive(receiveDataList);
}
void loop() {
delay(1000);
hoRicevutoDati = dalleNoteAlMotorino(hoRicevutoDati);
}
void receiveDataList(int numByte){
int i = 0;
while(Wire.available() > 0){
for(i=0; i < 100; i++){
byteArray[i] = Wire.read();
if (byteArray[i] == 255){
break;
}
else{
Serial.println(byteArray[i]);
i++;
}
};
}
boolean dalleNoteAlMotorino (boolean hoRicevutoDati) {
while (hoRicevutoDati == true) {
Serial.print("byte[0] ");
Serial.println(byteArray[0]);
Serial.print("byte[1] ");
Serial.println(byteArray[1]);
Serial.print("byte[2] ");
Serial.println(byteArray[2]);
Serial.print("byte[3] ");
Serial.println(byteArray[3]);
Serial.print("byte[4] ");
Serial.println(byteArray[4]);
return hoRicevutoDati = false;
}
}
通過I2C我傳遞{0,2,5,4,...},當dalleNoteAlMotorino運行,我期待看到0,2,5,4 ......而不是我得到0 0 0 2 0 5 0 4 ...每個數字之前都有一個0。環顧四周我想我可能已經將字節數組轉換爲指針數組,雖然我不知道我是如何做到這一點,因爲我沒有將數組作爲參數傳遞到任何地方。我也不明白在值之前究竟是0還是我怎麼才能訪問這個值。基本上我不明白髮生了什麼事。
Arduino不是C!但是告訴你不知道C語言。 – Olaf