使用终端发送时,Serial.read()的值不正确

时间:2014-05-11 17:31:23

标签: c arduino

我正在尝试使用终端通过USB向我的Arduino Nano发送值。

但是:当在循环中使用Serial.print()打印出读取字节的值时,我得到三个单独的值 - 它们都不是我实际发送的值。

例如:发送41时,我在终端上打印52,49和13。

我的代码如下所示:

byte incomingByte;

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) { 
    incomingByte = Serial.read();
    Serial.print(incomingByte);
  }
}

知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

您的终端以十进制打印并以ASCII格式发送。如果你看一下ASCII表,52,49和13对应于ASCII中的41 \ r \ n。你输入了4作为ASCII并且得到了小数52,然后是ASCII中的1并且得到了小数49并且可能点击了回车或回车(CR - \ r)并且得到小数13。

http://www.asciitable.com/