我正在尝试通过串行方式将我的 Arduino 上的一个数组发送到我的计算机。但是,每当我收到数组时,它显然包含随机且有时会逐秒变化的数据。这让我怀疑我错误地引用了指针,但我找不到语法问题。
该数组由 buildreport() 生成,它将一个布尔值* 返回到数组中的第一个元素。这由 loop() 占用,它将它写入串行线路。
//read pins
boolean report[NUM_BUTTONS] = {0,0,0,0,0,0,0,0,0}; //I set this to all zeroes for testing and brevity
boolean* x = &report[0];
return x;
和循环()
//if I don't read the serial, it will always be
//available and execute forever.
if(Serial.available() != 0){
incoming = Serial.read();
boolean* reports = buildreport();
//reports should now be the first element of the array
for(int i=0;i<NUM_BUTTONS;i++){
boolean x = *(reports+i);
//x is set to value at reports[0] plus i
Serial.write(x);
}
Serial.write(0x0d); //carriage return
Serial.write(0x0a); //line feed
}
每次我通过在串行线路上发送任何东西来请求数组时,我都会得到 9 个不是 1 或 0 的字节。有时第一个字节会改变。