2013-02-28 166 views
2

我有以下草图上传到我的Arduino的乌诺Rev3型:通信已损坏

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

void loop() { 
    Serial.println("Hello, World!"); 
    delay(10); 
} 

当我运行它,你好,世界!按预期连续打印到串行监视器。

我有以下处理素描:

import processing.serial.*; 

Serial port; 

void setup() { 
    port = new Serial(this, "/dev/cu.usbmodem1421", 9600); 
} 

void draw() { 
} 

当我运行处理草图,串行监控输出被损坏。你好,世界的简洁线条!最终看起来像这样:

Hello, Wold! 
Hell, Wrld! 
He 
Hello, o, Worlorld! 
H 
Hello,World! 
ello World! 
Hell, World! 
Helo, orld 
Hello,Worl! 
Hello World! 
d! 
HellHello, W, World! 

我想通过串行处理和Arduino的之间的沟通,但我可以在输出未损坏。什么可能导致这个?

回答

1

您是否说您在运行Processing草图的同时打开了Arduino串行监视器?如果是这样,你不能这样做:你不能有两个应用程序试图同时通过同一个端口与Arduino通信。

此外,增加延迟(尝试100) - 你是淹没缓冲区。您不显示从串口读取的处理代码;哪里是?

+0

看起来是正确的,似乎你正在写入比9600 BAUD可以传输更快的串行。 – 2013-03-01 10:54:44

+0

我没有意识到,当Arduino串行监视器打开时,您无法运行Processing。这绝对是问题,因为我把延迟增加到了10000,并且仍然有相同的结果。为了简单起见,我没有包含任何处理代码来读取数据,因为简单地连接到端口引起了问题。所以看起来正确的方式来查看串行数据直接通过处理。 – 2013-03-01 17:34:50