Arduino Sketch上传问题 - avrdude:stk500_recv():程序员未响应

172
我有一个带有ATmega328的Arduino Duemilanove。我正在使用Ubuntu 12.04(Precise Pangolin)操作系统,Arduino IDE的版本是1.0。最近,我尝试上传一些示例代码,例如Blink。然而,我的所有尝试都失败了,并且每次尝试时都会出现相同的错误:

avrdude: stk500_recv(): programmer is not responding.

我已在菜单工具串口下启用了/dev/ttyUSB0。我也从列表中选择了正确的板子(ATmega328的Duemilanove)。但是,我仍然无法解决问题。我也在网上搜索了一些解决方案,但似乎都不适用于我。为什么会出现这个问题,如何解决?
我还尝试了翻转板载ATmega并插入另一个方向。现在,上传没有问题,但之后什么也没发生。板载LED也似乎没有闪烁。

将Arduino uno板上的RST与GND断开连接。我按照这个教程操作,忘记撤销了这个步骤。 - ArtiomLK
这可能是因为波特率设置为错误的值(可能太高)。 - Konrad Gajewski
40个回答

1
你有任何东西连接到了 Arduino 的 RESET 引脚吗?
我曾经遇到过一个图形 LCD 需要连接到 RESET 引脚的问题。在上传代码时,断开 LCD 和 RESET 引脚之间的跳线电缆就可以解决这个问题,上传完代码后再重新连接即可。

这(有点)解决了我的问题。谢谢! - Arjun Praveen

1

我想指出我的全新Arduino Uno Rev3板使用以下Linux驱动程序:

Device Drivers    
|-USB Drivers
  |-USB Modem (CDC ACM) support

这在最新的Linux 3.x内核中被称为:CONFIG_USB_ACM选项。

然后,该设备会出现为:/dev/ttyACM0或类似名称。


1
我发现了这个问题的原因...
将我的串行端口更改为/dev/tty.usbmodem2131解决了它。 原来我一直在使用错误的串行端口!

1
首先,请确保 /dev/ttyUSB0 是正常工作的。例如,插入鼠标并检查其是否正常工作。 其次,请尝试选择其他开发板。常见情况是非原装开发板不能正确识别其名称。 第三步,请在上传代码时手动按下复位按钮。可能自动复位功能已损坏。

1

我通过从这里下载并安装旧的FDTM驱动程序解决了我的问题。

尝试安装FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg,然后重新启动Arduino。


它与OP的问题大多无关,而且FTDI驱动程序仅在您拥有Arduino 328时才有用。 - zmo

0
尝试在不使用-b(波特率选项)的情况下加载程序。在~/.arduino15/preferences.txt中设置build.verbose=true,当arduino.cc未运行时。在详细输出中,您将找到应从控制台加载的十六进制文件:
avrdude -v -v -v -v -C/usr/share/arduino/hardware/tools/avr/etc/avrdude.conf -patmega328p -carduino -P/dev/ttyUSB2  -D -Uflash:w:/tmp/build2314497724350388190.tmp/sketch_nov13b.cpp.hex:i

我刚刚将芯片128替换为328版本,由于新的波特率115200,我的板子名称从Decimile更改为Uno或Ethernet。


0
在MAC OS中,只需重新启动计算机,然后在重新启动后它就可以工作了。

0

我将FT232RL的DTR引脚连接到我的Arduino的DTR引脚,问题得到了解决。

我正在使用带有ATMega328芯片的Arduino Pro Mini。


0

我的问题是我更新了Arduino IDE到新版本,但没有重新连接电线。看起来那就是问题所在。

只需断开电缆并重新连接即可。 谢谢。


0
在我的情况下,问题出现在我尝试进行一些“奇怪”的算术表达式时。
例如(3.14/4)/5或3.15%2.55。
因此,我建议您检查所有算术表达式,以防有些表达式无法由Arduino计算。
希望这可以帮助您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接