前言

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

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

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

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

正文

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)

Screenshot from 2023-10-17 22-15-29

我觉得很奇怪,不明白什么原因,然后我之后将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,如下图:

Screenshot from 2023-10-17 22-11-59

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

Screenshot from 2023-10-17 22-15-53

所以,建议以后在安装了Arduino IDE之后,不管三七二十一先打开Show verbose output during的compile 和 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,即可解决。

参考

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

Q.E.D.


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