来自于旧站的重置文章。

前言

最近在用Arduino搭建工业控制系统(ICS),但是发现怎么样都无法将代码上传到Arduino上面。

于是乎Google一下,发现答案,要将本来的9600 baud调成1200 baud,然后就可以了。

很奇怪,但是确实上传成功。遂做一个记录。

记录更新,曾经我以为是9600 baud的问题,但是现在发现有可能是IDE本身的问题,和9600、 1200baud无关。

记录更新,至少对于 Arduino Nano Every的解决办法。

正文

1. [非主要问题] 9600 baud 调成 1200 baud

当报错

avrdude: jtagmkII_getsync(): sign-on command: status -1

的时候,将9600 baud调成1200 baud。

2. 重新回顾问题

让我们重新回顾一下问题:我们的问题如下,当我们点击Upload上传的时候,系统会一直报错avrdude: jtagmkII.getsync(): sign-on command: status -1,直到最后avrdude: jtagmkII_getsync(): timeout/error communicating with programmer (status -1)

我觉得很奇怪,不明白什么原因,然后我之后将9600 baud换到了1200 baud,就不会发生这种问题了。但是,在我昨天无意中看到了另一个答案If you go into preferences and select show verbose output during upload what does the report tell you?(来自《Can't upload sketches to Nano Every - jtagmkII_getsync() "sign-on command: status -1"》)。我就尝试着打开了verbose的output,对于compile 和 upload来说都打开了。然后一下就好了,好的莫名其妙...?

3. 解决方法

所以根据上所述,对于这种问题解决办法就是,直接Preference > Settings > Show verbose output during > compile & upload,如下图:

然后就会显示完整的编译和上传信息,然后就好了,如下图:

所以,建议以后在安装了Arduino IDE之后,不管三七二十一先打开Show verbose output during的compile 和 upload,再做其他的,可以避免很多麻烦!

4. 对于Arduino Nano Every

突然发现的解决办法,其实挺简单,我之前都是直接upload,但是发现这个对于Arduino Nano Every可能不太行,所以解决办法就是:

  1. Verify

  2. Upload

然后就稳定上传了。

总结

如上所述,avrdude: jtagmkII_getsync(): sign-on command: status -1的时候,将9600 baud调成1200 baud。然后代码就可以上传了~。

遇到问题avrdude: jtagmkII_getsync(): sign-on command: status -1,直接Preference > Settings > Show verbose output during > compile & upload,即可解决。

对于Arduino Nano Every:先Verify Upload

参考

[1] Can't upload sketches to Nano Every - jtagmkII_getsync() "sign-on command: status -1"

立志做一个有趣的碳水化合物。