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
C 使用Serial.write串行发送字节数组时出错_C_Arduino_Arduino Ide - Fatal编程技术网

C 使用Serial.write串行发送字节数组时出错

C 使用Serial.write串行发送字节数组时出错,c,arduino,arduino-ide,C,Arduino,Arduino Ide,使用串行发送字节数组时出错。写入 byte buf[] = {125, 126, 127, 2000, 5000}; int i = Serial.write(buf, sizeof(buf)); for(int i = 0; i < (sizeof(buf) / sizeof(buf[0])); i++) { Serial.println(buf[i]); } 开始时为未知字符设置的任何时间。我使用的是Arduino 1.0.5

使用
串行发送字节数组时出错。写入

     byte buf[] = {125, 126, 127, 2000, 5000};

 int i = Serial.write(buf, sizeof(buf));

 for(int i = 0; i < (sizeof(buf) / sizeof(buf[0])); i++)
     {
          Serial.println(buf[i]);
     }

开始时为未知字符设置的任何时间。我使用的是Arduino 1.0.5版本

它们不是未知字符,这就是您打印的内容:

int i = Serial.write(buf, sizeof(buf));
只需检查一个
buf[0]=125='{'

使用
write()
可以写入没有任何格式的原始数据。第一个字节是值125,二进制
011111101
。如果字符
{
,则该字节对应字符
{
。串行通信将传入的字节解释为字符,因此打印“{”


如果要在串行通信中将
125
打印为字符串,则必须发送
buf[]={49,50,53}
。或者您必须将INTGET转换为字符串。

还有一个问题,就是您使用的
字节类型的值大于255。请尝试更改为
int16\u t

开头的字符是您发送的buff数字的ASCII表示形式。arduino串行监视器监视所有活动,并且它还打印出.write命令..writeln,您稍后执行的操作将在原始.write命令之后额外打印

您看到的是arduino发送命令的ASCII表示形式

附言:
数字2000和5000不适合该字节,因此您发送的最后两个字节可能已损坏。

请确切告诉我们:“…开始时未知字符的任何时间…”?关于开始时获取未知字符的任何想法。。。。
int i = Serial.write(buf, sizeof(buf));