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

Pas*_*ian 127 arduino

我有一个带有Atmega 328的Arduino Duemilanove.我正在使用Ubuntu 12.04,而Arduino IDE的版本是1.0.最近,我尝试将一些示例草图上传到它上面,例如Blink one.但是,我的尝试都没有工作,每次我尝试它们都会导致相同的错误 - avrdude:stk500_recv():程序员没有响应.

在此输入图像描述

我在工具 - >串口下启用了'/ dev/ttyUSB0'.我还从列表中选择了正确的板(Duemilanove with Atmega 328).但是,我无法解决这个问题.我也在网上搜索过,这个问题的其他回复似乎都没有对我有用.有人能告诉我为什么我遇到这个问题并帮我解决它吗?

更新:我尝试转动机载Atmega并将其安装在另一个方向.现在,我没有遇到上传问题,但事后没有任何反应.板载LED也似乎没有闪烁.

hoi*_*loi 105

我有一个Crowduino的问题,在OSX上运行Arduino IDE.对我来说,解决方案是在上传期间(在arduino IDE首选项窗格中)打开详细输出.

然后,在上传时,您可以看到avrdude avrdude: Send: 0 [30] [20]avrdude: ser_recv(): programmer is not responding错误发生之前发送三个数据包(板上有相应的RX闪烁).

诀窍是在发送这三个数据包之前立即点击板上的重置按钮.然后程序将成功上传.

  • @daniele其他人注意到如果你在X秒后重置,那么它可以工作.我认为数据包是一些手握动的尝试.所以基本上,我用谷歌解决了这个问题,耐心和对董事会的充分期待! (8认同)
  • 仅供参考 - 我必须安装最新的FTDI驱动程序才能永久解决此问题 (4认同)
  • 嗯,这至少解决了我的问题.你是怎么想出来的? (2认同)
  • 更新FTDI驱动程序并重启Arduion帮助了我(MacOS 10.9.4,Arduino Nano 328) (2认同)

red*_*aks 72

确保Tx/Rx引脚上没有输入,然后它才能工作.

  • 只需拔掉RX引脚,就可以了. (7认同)
  • 这帮了我大忙。用了30分钟寻找此解决方案! (2认同)
  • 这对我有用!我有一个蓝牙模块连接到 RX/TX 引脚。 (2认同)

Edg*_*gar 55

我有同样的问题 - 这就是我找到这个问题的原因.

我只需要将处理器从"ATmego328P"改为"ATmego328P(Old Bootloader)"

问题解决了 - 至少对我而言.

在此输入图像描述

  • @MuhammadAli:我刚刚添加了截图来回答你的问题 (3认同)
  • 如果您使用的是ELEGOO NANO板,则可能会出现此问题。常见问题解答文档中也提到了相同的解决方案。 (2认同)

zmo*_*zmo 48

我知道这是一篇很老的帖子,但是在好的想法中,这里的答案中有一些巫术说话,让我们尝试更加真实地了解正在发生的事情,并总结一下要检查的好东西:

基本上,当发生这种情况时,最好启用详细模式avrdude,以便更好地了解正在发生的事情.为此,您只需要进入首选项并检查详细模式框.离开arduino IDE也是一个好主意,并且启动一个控制台以便在阅读avrdude输出时更加舒适,你可以点击upload按钮.

将3或4放入-v命令调用的重要性.以下是这些avrdude命令的外观,它们具有完整的参数,因为它们完全取决于Arduino的安装方式:

avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Run Code Online (Sandbox Code Playgroud)

获取正确命令行的一种好方法是在启用详细程度时从Arduino IDE输出日志的详细输出中复制它.

当你得到avrdude: stk500_recv(): programmer is not responding它,它基本上意味着在闪烁实际开始之前发生了一些错误.基本上你必须检查(从硬件到软件,从低级别到高级别):

  • 如果电缆和/或连接器没有微型插座;
  • 如果没有焊点短路(即接触金属周围的东西),这意味着:
    • 如果PCB之间RxTx(通常是引脚10)之间没有短路;
    • 如果没有接触到电路板下方的金属元件,或者元件腿之间的微小部分(如FTDI,atmega芯片或任何其他部分);
  • 如果atmega芯片没电源(GND/VCC快捷方式或切断或VCC输入死机......);
  • 如果Arduino 的10引脚没有被某些屏蔽或定制设计使用(/!\由于它具有独立的USB处理,因此不适用于leonardo);
  • 如果USB转UART转换器没有问题(FTDI在较旧的deadmilanove或Atmega16U2较新的Unos上);
  • 如果Atmega328芯片被油炸或错误安装;
  • 如果引导加载程序已被覆盖或失败;
  • 如果使用正确的波特率进入引导加载程序;
  • 如果为目标MCU和板设置了正确的设置;

通常avrdude -v -v -v -v可以帮助很多人找到失败的阶段.是否它根本无法建立USB连接(电缆故障,USB/UART,PCB ......),或者它是引导加载程序的问题.

更新:我尝试转动机载Atmega并将其安装在另一个方向.现在,我没有遇到上传问题,但事后没有任何反应.板载LED也似乎没有闪烁.

我担心,如果你颠倒了atmega的位置,然后它不起作用,你将电源放在数字引脚上的事实可能会烧毁你的芯片.

  • 这是正确和最彻底的答案. (3认同)
  • 对我来说,这是因为我在 eclipse avrdude 配置中设置了不正确的波特率。当我在 arduino IDE 上看到命令行时就想通了。 (2认同)

小智 21

尝试查看您的电路板是否正确选择.单击菜单工具 - >板,然后检查是否选择了正确的板.

  • 这是给我的。我一直在使用 Uno,直到我炸了它并得到了一个新的 Mega。全新的 Mega 看到了这个问题。我什至不知道这个菜单存在。谢谢! (2认同)

lad*_*las 12

您可以检查是否有任何插头插入引脚0和1.引脚用于串行通信,插入的电线可以防止代码上传到电路板上.

如果没有插入任何内容,则可能是一个错误avrdude,您可以尝试更新它.

希望能帮助到你!:)

  • 绝对没有任何东西连接到0和1。`avrdude`也已更新,并且是最新版本。 (2认同)

小智 10

我也遇到了这个问题,我通过重新安装USB串行驱动程序解决了这个问题.请参阅:http://arduino.cc/en/Guide/Howtohttp://www.ftdichip.com/Drivers/VCP.htm


小智 6

以上错误分为 3 个阶段

  1. 如果引导加载程序已崩溃
  2. 如果您没有从 IDE 中选择正确的端口和正确的电路板
  3. 如果您与其他串口通信连接。即GND和Tx引脚连接到其他通信设备


小智 6

我发布这个是因为我在其他地方没有找到这个答案。我所有的 Arduino nano chinese (CH340) 克隆在将 Arduino IDE 升级到 1.8.9 后都遇到了这个问题。对我有用的是使用一个备用的官方 Arduino Uno,我必须使用 Nano 上的 ICSP 接头将引导加载程序刻录到有故障的 Nano 上。为此,我所做的就是按照此处的说明进行操作:chinese-clone-of-arduino-nano-with-chip-ch340g-how-to-fix-it。我做的唯一不同的是始终设置“旧引导加载程序”选项,如本线程之前所述。除此之外,我完全按照该链接上的说明进行操作,并将我的纳米技术从那个恼人的问题中拯救出来。我希望这对那里的人有帮助。