使用Eclipse将代码上传到我的Seeeduino ADK(基本上是Arduino Mega 2560)时遇到了一些麻烦。基本上,this thread解释了我的问题。有时我会使用Arduino IDE上传获得一系列超时,通常可以通过移除和重新插入USB来修复。不幸的是,这无助于解决Eclipse中的问题。
我一直试图通过命令行使用AVRdude进行上传(我甚至在上面的线程的最后评论中尝试了“hacky”解决方案),但无济于事。这是我正在使用的这条线:
"%AVR_DUDE%" -pm2560 -cstk500v2 -P\\.\%COMM_PORT% -b115200 -F -V -D - Uflash:w:"%HEX_FILE%":a -C"%AVR_DUDE_CONF%"
这给了我:
avrdude.exe: stk500v2_ReceiveMessage(): timeout
我知道上面的批处理变量没问题,因为AVRdude正确运行(但随后它超时)。如果有人有任何想法或提示可以帮助我上传,我将非常感谢。先谢谢。
编辑:事实证明,原因可能是Arduino IDE在上传之前向电路板发送了一个复位,这是Eclipse AVR插件不能做的事情。我将对此进行测试并编写一个上传perl脚本,但我相当确定这是问题所在。答案 0 :(得分:2)
你的怀疑是正确的。 Arduino IDE使用修补版本的AVRDude来脉冲DTR线并在每次上传之前重置电路板。出于某种原因,有些人难以在Mega2560上获得正确的命令行参数来复制它。我自己也有同样的问题 - ATMega328的工作没有问题,但2560需要手动重置。
有一些进一步的解释和提示可能让它在这里工作(也请查看评论):http://false.ekta.is/2011/05/avrdude-5-10-arduino-mega-2560-command-line-uploading/
答案 1 :(得分:0)
点击此处详细信息...... http://false.ekta.is/2011/05/avrdude-5-10-arduino-mega-2560-command-line-uploading/
如果使用avrdude>版本5.1将程序员更改为-cwiring
这将首先重置芯片