【问题标题】:Arduino Sends Old Data Through SerialArduino 通过串口发送旧数据
【发布时间】:2017-07-23 04:48:50
【问题描述】:

我认为最好用一个例子来解释我的问题。这是一些 Arduino 代码:

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

void loop() {
  Serial.println(millis());
  delay(1);
}

...这是输出:

现在,开头的那些数字不仅仅是您常规的旧串行数据的第一个字节总是混乱的数字。这些数字是我上次打开串行监视器时留下的。我怎么知道这个?因为我数了一下距离上次打开串口监视器已经过去了多少秒,结果都匹配了。

所以这是一个大问题,

我该如何停止?它破坏了我的 Java 程序,该程序应该从 Arduino 的当前“运行实例”(我不知道正确的术语)中读取数据,而不是最后一个。

【问题讨论】:

    标签: arduino


    【解决方案1】:

    您的 Arduino 没有任何问题。请记住,USB 连接不是真正的 RS-232 串行接口,它是通过 USB 模拟的。 USB 连接由带有自己缓冲区的芯片控制。

    坏消息是,如果您使用 USB 电缆传输 RS-232 信号,除了发送一些“填充字符”来清除缓冲区之外,您无能为力。到处都有太多的缓冲区 :) 发送一些终端仿真命令,例如“清屏”和“换页”等,以清空缓冲区中的内容管道。

    这提醒了我——我们都应该停止使用糟糕的 Arduino 串行监视器,并大声疾呼。相反,请使用 TeraTerm 或 Putty 或您选择的任何其他优质终端仿真器。

    或连接真正的 RS232 和适配器和电缆。我的开发机器有三个串口,但我就是这么做的。当今的计算机通常甚至没有一个方便的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-09
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      • 1970-01-01
      相关资源
      最近更新 更多