【问题标题】:Incorrect values from Serial.read() when using terminal to send使用终端发送时来自 Serial.read() 的值不正确
【发布时间】:2014-06-29 00:47:20
【问题描述】:

我正在尝试使用终端通过 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);
  }
}

知道我做错了什么吗?

【问题讨论】:

    标签: c arduino


    【解决方案1】:

    您的终端正在以十进制打印内容并以 ASCII 格式发送。如果你看一下 ASCII 表,52、49 和 13 对应于 ASCII 中的 41\r。您输入 4 作为 ASCII 并返回十进制 52,然后在 ASCII 中输入 1 并返回十进制 49,可能按 Enter 或回车 (CR - \r) 并返回十进制 13。

    http://www.asciitable.com/

    【讨论】:

      猜你喜欢
      • 2021-01-13
      • 2021-01-21
      • 2014-07-15
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 2015-03-19
      相关资源
      最近更新 更多