2013-02-28 167 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