Arduino通过串行发送旧数据

时间:2017-07-23 04:48:50

标签: arduino

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

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

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

......这是输出:

Arduino Output

现在,开头的那些数字不仅仅是你常规的旧的第一个字节的串行数据总是混乱的数字。这些数字是我上次打开串行监视器时遗留的。我怎么知道这个?因为我计算了自从我上次打开串行监视器以来经过了多少秒,所有这些都匹配了。

所以这是大问题,

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

1 个答案:

答案 0 :(得分:1)

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

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

这让我想起了 - 我们都应该放弃使用蹩脚的Arduino串口监听器并对此发表意见。相反,请使用TeraTerm或Putty或您选择的任何其他优质终端模拟器。

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