前言
最近在用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)
。
我觉得很奇怪,不明白什么原因,然后我之后将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,再做其他的,可以避免很多麻烦!
总结
如上所述,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.