我在写一部Arduino的连续剧时遇到了一个特殊的问题。我最近在一个项目中将主板从Duemilanove改为Mega2560。我的部分代码从处理程序中执行非常简单的串行读取,例如:
if (Serial.available() > 0) {
byte c = Serial.read();
}在setup方法中,我使用以下命令打开一个115200波特连接:
Serial.begin(115200);无论如何,这在Duemilanove上工作得很好,但现在我切换到了Mega2560,Arduino似乎不能接收串行数据。然而,令我惊讶的是,当我在启动发送数据的处理程序之前打开串行监视器窗口时,所有数据都被正确发送。
我的问题是,串行监视器改变了什么使一切正常工作,我如何在我的处理程序中重新创建它?
发布于 2011-03-18 21:48:33
Arduino软件复位意味着只要连接了串行监视器,Arduino就会自动复位。你注意到这种行为了吗?这可能是原因吗?
要关闭自动重置,有一条轨迹可以切割。如果你想重新打开这个功能,解析器是很容易的。
此Arduino Wiki Page可能会有所帮助。

发布于 2011-11-18 18:56:34
串行监视器仅对主板进行重置。在你运行你的代码之前,试着重置你的mega。
https://stackoverflow.com/questions/4234882
复制相似问题