Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serial port Arduino串行写入_Serial Port_Arduino - Fatal编程技术网

Serial port Arduino串行写入

Serial port Arduino串行写入,serial-port,arduino,Serial Port,Arduino,我正在尝试使用arduinon系列。write(buf,leng)。这是我的密码 byte buf[] = {125, 126, 127, 128, 129}; void setup() { // initialize serial: Serial.begin(9600); } void loop() { int i = Serial.write(buf, sizeof(buf)); Serial.println(i); delay(1000); } 然而,当我打开串

我正在尝试使用arduinon系列。write(buf,leng)。这是我的密码

byte buf[] = {125, 126, 127, 128, 129};

void setup() {
  // initialize serial:
  Serial.begin(9600);

}

void loop() {
  int i = Serial.write(buf, sizeof(buf));
  Serial.println(i);
  delay(1000);
}
然而,当我打开串行监视器时,这是它打印出来的内容

}~   5
}~   5
}~   5
}~   5
首先,我读到write将二进制数据写入串行端口,打印的是ascii字符。我怎么会看到ascii字符

第二个问题是,为什么没有超过127的东西出现

每当我串行写入(>127)时,它总是在串行监视器中显示一个愚蠢的输出

是因为计算机的串行端口吗


我的主要目标是一次性将32个字节写入串行数据,以便它们都位于我的xbee传输包的相同有效负载中

输出正确。您正在编写二进制数据,但您试图将其视为ASCII,这就是为什么您看到的是例如
}
而不是
125
,因为一个字节125表示ASCII中的
}
<代码>125将需要3个字节才能显示为ASCII

当您写入大于127的字节时,您会看到一些奇怪的东西,因为ASCII仅包含128个字符(0到127)的定义

如果在接收电路上,您想读取与代码上完全相同的数组,那么您的草图就可以了。您只需使用某种“串行读取”,并根据需要使用数字,记住每个数字都有一个字节大小

另一方面,如果您想在串行监视器上看到以ASCII字符表示的数字,则必须将这些数字转换为ASCII代码,或者使用
println
函数使用循环将数字打印为整数:

int numbers[] = {125, 126, 127, 128, 129};
for(int i = 0; i < (sizeof(numbers) / sizeof(numbers[0])); i++)
    Serial.println(numbers[i]);
int number[]={125、126、127、128、129};
对于(int i=0;i<(sizeof(数字)/sizeof(数字[0]);i++)
序列号println(编号[i]);

谢谢,它的实际功能很好,只是串行监视器开始出错。我也有同样的问题。当我使用Serial.print(124)时,在Arduino中我得到三个独立的值。我得到的ascii码是“1”,ascii码是“2”,ascii码是“4”。如何从arduino发送一个简单的值,然后通过处理读取它?