3

我在 Arduino 上写串口有一个特殊的问题。我最近将一个项目中的电路板从Duemilanove更改为Mega2560。我的部分代码从处理程序中进行非常简单的串行读取,例如:

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

在设置方法中,我打开一个 115200 波特连接:

  Serial.begin(115200);

无论如何,这在 Duemilanove 上运行良好,但现在我切换到 Mega2560,Arduino 似乎没有接收串行数据。然而,令我惊讶的是,当我在启动发送数据的处理程序之前打开串行监视器窗口时,所有数据都被正确发送。

我的问题是,串行监视器发生了什么变化使一切正常,我如何在我的处理程序中重新创建它?

4

2 回答 2

1

Arduino 软件重置意味着只要连接了串行监视器,Arduino 就会自动重置。您是否注意到这种行为,这可能是原因吗?

要关闭自动重置,可以剪切一条痕迹。如果您想重新打开该功能,很容易重新焊接。

这个Arduino Wiki 页面可能会有所帮助。

小号

于 2011-03-18T13:48:32.917 回答
0

串行监视器仅对板进行复位。只需在运行代码之前尝试重置 mega 即可。

于 2011-11-18T10:56:34.380 回答