我从一个从设备得到这个代码
byte buf[] = {125, 126, 127, 2000, 5000};
void setup() {
// initialize serial:
Serial.begin(9600);
}
void loop() {
int i = Serial.write(buf, sizeof(buf));
Serial.println(i);
delay(5000);
}
我有这个来自监听设备的代码。
char protocol[5];
void setup() {
Serial.begin(9600);
memset(protocol, '\0', sizeof(protocol));
}
void loop() {
if(Serial.available()) {
Serial.readBytes(protocol, 5);
Serial.println(protocol);
for(int i = 0; i < sizeof(protocol); i ++ ) {
Serial.println((int)protocol[i], BIN);
}
}
else{
Serial.println("None available");
delay(500);
}
}
我知道 Arduino 使用 2 的恭维,但是我得到的问题是打印出来的是这个
1111101
1111110
1111111
11111111111111111111111111010000
11111111111111111111111110001000
并且由于 2 的补码,所有零都被添加以完成字符,因为最左边的位读入为 1。无论如何,第 4 和第 5 个数字不是 2000 和 5000,而是数字与此大不相同。如何让附加的 1 消失,以便阅读 2000 和 5000?谢谢