2010-11-20 108 views
3

我在Arduino上寫入串行時遇到了特殊的問題。我最近將項目中的板子從Duemilanove更改爲Mega2560。我的代碼部分確實很簡單的串行讀從處理程序,例如:在Arduino IDE中使用串行監視器(爲什麼這是可行的?)

if (Serial.available() > 0) { 
    byte c = Serial.read(); 
} 

在設置方法我打開了115200波特連接:

Serial.begin(115200); 

總之,這工作得很好用Duemilanove,但現在我切換到Mega2560 Arduino似乎並沒有收到串行數據。但是,在啓動發送數據的處理程序之前打開串行監視器窗口時,令我驚訝的是,所有數據都被正確發送。

我的問題是,串行監視器發生了什麼變化,使所有的工作,以及如何在我的處理程序重新創建?

+0

您是否檢查過流量控制? – dacwe 2010-11-20 21:17:01

+0

@William - 你如何從串口監視器知道arduino實際上*讀取數據?你有沒有一個調試回聲消息? – mac 2010-11-25 14:22:20

+0

可能聽起來很愚蠢,但是您是否在板上具有相同的波特率,並且在處理應用程序中設置了相同的波特率? – 2010-11-28 11:24:07

回答

1

Arduino軟件復位意味着無論何時串行監視器連接,Arduino都會自動復位。你有沒有注意到這種行爲,這可能是原因?

要關閉自動重置功能,可以切斷一條曲線。如果要重新打開該功能,則很容易解決。

This Arduino Wiki Page may be helpful。

S

0

串行監控不僅重置爲板。只需在運行代碼之前嘗試重置兆。

相關問題