157

我有一个带有ATmega328的 Arduino Duemilanove 。我正在开发Ubuntu 12.04 (Precise Pangolin),而 Arduino IDE 的版本是 1.0。最近,我尝试将一些示例草图上传到它上面,例如 Blink 之一。但是,我的任何尝试都没有奏效,每次尝试都会导致相同的错误:

avrdude:stk500_recv():程序员没有响应。

/dev/ttyUSB0在菜单ToolsSerial Port下启用了。我还从列表中选择了正确的板(Duemilanove with ATmega328)。然而,我无法解决这个问题。我也在网上搜索过,对于这个问题的其他回应似乎都没有对我有用。为什么我会遇到这个问题以及如何解决它?

我还尝试转动板载 ATmega 并将其安装在另一个方向。现在,我上传没有遇到任何问题,但之后没有任何反应。板载 LED 似乎也没有闪烁。

4

40 回答 40

115

我在使用 Crowduino 时遇到了这个问题,在 OS X 上运行 Arduino IDE。我的解决方案是在上传期间打开详细输出(在 Arduino IDE 首选项窗格中)。

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

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

于 2013-12-22T23:57:06.757 回答
99

我有同样的问题——这就是我发现这个问题的原因。

我只需要将处理器从“ATmega328P”更改为“ATmega328P(旧引导加载程序)”</p>

问题解决了——至少对我来说。

在此处输入图像描述

于 2018-06-12T23:58:20.537 回答
90

确保 Tx/Rx 引脚上没有输入。然后它将起作用。

于 2014-05-13T22:55:13.177 回答
51

在好主意中,这里的答案中有一些巫毒谈话。让我们尝试更真实地了解正在发生的事情,并总结要检查的好东西:

基本上,当这种情况发生时,最好为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

获得要使用的正确命令行的一个好方法是在启用详细程度时从 Arduino IDE 输出日志的详细输出中复制它。

当你得到avrdude: stk500_recv(): programmer is not responding时,它基本上意味着在闪烁实际开始之前发生了一些错误。

基本上你必须检查(从硬件到软件,从低级到高级):

  • 如果电缆和/或连接器没有微切口;
  • 如果没有焊点短路(即接触周围的金属物),这意味着:
    • Rx如果和Tx(通常是引脚1和)之间的 PCB 上没有短路0
    • 如果没有与电路板下方的金属元件接触,或者在组件的腿之间没有接触到微小的部分(如 FTDI、ATmega芯片或任何其他芯片);
  • 如果 ATmega 芯片没有断电(GND/V CC捷径或切断或 V CC输入失效……);
  • 如果某些屏蔽或定制设计未使用 Arduino的1和引脚(不适用于Leonardo,因为它具有独立的 USB 处理);0/!\
  • 如果 USB 到 UART 转换器没有问题(FTDI在较旧的 Duemilanove 或较新的 Arduino Unos 上的 ATmega16U2 上);
  • ATmega328芯片是否烧坏或安装错误;
  • 如果引导加载程序已被覆盖或失败;
  • 如果进入引导加载程序应用了正确的波特率;
  • 是否为目标微控制器和开发板设置了正确的设置;

通常avrdude -v -v -v -v可以帮助很多人找到它在哪个阶段失败了。无论是根本无法建立 USB 连接(电缆故障、USB/UART、PCB ……),还是引导加载程序问题。

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

恐怕如果您将 ATmega 的位置颠倒,然后它不起作用,您将电源放在数字引脚上的事实可能已经烧毁了您的芯片。

于 2014-01-31T23:04:23.270 回答
24

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

于 2014-01-29T00:07:49.333 回答
13

您可以检查是否有任何跳线插入针脚 0 和 1。这些针脚用于串行通信,插入的电线会阻止代码上传到板上。

如果没有插入任何内容,则可能是AVRDUDE的错误,您可以尝试更新它。

于 2013-11-04T10:12:52.647 回答
10

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

于 2014-01-14T02:03:12.237 回答
6

上述错误分为三个阶段

  1. 如果引导加载程序已崩溃
  2. 如果您没有从 IDE 中选择正确的端口和正确的板
  3. 如果您与其他串口通信已连接。即 GND 和 Tx 引脚连接到其他通信设备
于 2014-01-08T12:48:48.403 回答
6

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

于 2019-04-30T08:23:27.020 回答
4

我第一次尝试 Arduino Uno 时遇到了同样的问题。

我的解决方案很简单。只需拔出然后插入 USB 电缆。

于 2015-02-26T15:36:35.267 回答
3

On Windows 7, I had this problem multiple times, each time with different error messages. Basically, the IDE is sending to the wrong port.

To fix this, simply go to menu ToolsPorts → [select the COM port that your board is on].

Make sure to double check your board's port:

  1. Start Device Manager

    Start Menu

  2. Make sure your Arduino driver is listed under the port matching your IDE's port settings (mentioned above)

    Device Manager

  3. My board is listed under port COM1. If you want, you can simply change the port in the driver's advanced settings:

    Enter image description here

于 2015-03-17T08:26:55.350 回答
3

我按照以下说明解决了OS X v10.10 (Yosemite) 上的问题:

FTDI 芯片和 OS X 10.10

然而,hoipolloi 提出的技巧是一个有效的临时解决方法,在这个版本上也是如此。

于 2014-11-27T19:29:07.667 回答
3

感谢@hoipolloi 为找到解决方案提供了正确的方向。

无论如何,我不得不采取一些不同的步骤来解决这个问题。

就我而言,Arduino Uno 运行良好,但在玩了一些草图后它突然停止了。我一直在收到,stk500_recv(): programmer is not responding但没有任何效果。然后我注意到我板上的 LED 13 总是亮着的。看起来一些硬循环草图在板上一遍又一遍地运行,并阻止了对板的任何输入。不确定,这只是我的猜测。

我尝试在所有可能的时刻单击 RESET 却没有任何运气,然后突然尝试了以下步骤:

  1. 拔下电路板。
  2. 单击并按住重置。
  3. 再插一次。
  4. 等待几秒钟。
  5. 松开 RESET 按钮。

在此之后,我注意到板载 13 LED 关闭了一秒钟,然后再次打开。实际重置板时,似乎有一个短暂的重置窗口。然后就像在@hoipolloi 的解决方案中一样,我在发送三个数据包之前就抓住了“重置”的时刻,这很有效。

如果其他解决方案都不起作用,我希望这将帮助您找出问题所在。

提示。如果在控制台中上传草图时没有看到这Send: 0 [30] [20]三行,请执行以下操作:

  1. 在您的 Arduino IDE 中单击“上传”。
  2. 查看日志窗口。您将能够找到这样的一行:

    E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CE:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
    
  3. 看起来它像这里一样吞下了换行符或空格符号-CE:\Program Files...。应该是-C E:\Program Files。将其复制到记事本中,添加缺少的空格以使该行成为:

    E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -v -v -v -v -C "E:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -patmega328p -carduino -PCOM3 -b115200 -D -U flash:w:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
    
  4. -v像我上面做的那样添加 4条指令。

  5. 打开命令行,将命令粘贴到其中并运行。

-v现在,由于 4 个参数,您将看到更多详细信息。最初,Arduino Studio 只使用一个。

于 2016-09-07T19:11:25.457 回答
2

我在 Mac 上运行的 Arduino 上也有这个问题。它发生在我的两个 Arduino 上(一个 Arduino Uno 和一个与 FTDI 连接的 Arduino Pro)。

对于 Uno,我将电缆连接到我的计算机并按上传,然后开始计数,直到“TX”LED 闪烁。然后重复上传,但在 TX LED 闪烁之前,点击重置按钮,上传成功。

后来我确定更换 USB 电缆解决了这个问题。

于 2013-11-27T14:54:06.160 回答
2

请进行以下检查:

1-上传代码时,您的 arduino 的 TX 和 RX 中没有电线。
2-彼此之间没有焊接引脚。
3-如果 1 和 2 没问题,那么您必须使用另一个 arduino 将引导加载程序重新安装到您的 arduino 中,您可以在 youtube 上搜索如何做到这一点,那里有很多视频谈论它。

于 2020-05-17T11:21:32.817 回答
1

这是一个适用于我在MacBook Pro(台式机)上运行的解决方案。

我遇到了同样的错误,事实证明这是因为我将 USB 连接到外围设备(我的显示器)而不是 PC 本身上的 USB。它立即停止了任何错误,并且是一个简单的解决方案。

于 2014-10-16T13:29:11.557 回答
1

你可以试试:

  • 检查preferences.txt serial.debug_rate: serial.debug_rate=9600
  • 否则在上传时尝试点击 Arduino 的重置按钮。
  • 否则尝试在 Arduino IDE 菜单工具中选择另一张卡,然后在列表中重新选择您的卡。
于 2014-10-04T00:03:07.580 回答
1

我找到了这个的原因...

将我的串行端口更改为 /dev/tty.usbmodem2131 修复了它。原来我一直在使用错误的串口!

于 2014-08-23T02:18:31.993 回答
1

上述答案的组合为我解决了这个问题:

  • 执行了 Java 更新:

    sudo apt-get install default-jdk

  • 然后杀死Arduino IDE并重新启动它

  • 我的正确电路板现在出现了(Arduino Mega 2560,之前 Mega 1280 是唯一的选择)

  • 对于司机,我这样做了:

    sudo chmod a+rw /dev/serial/by-id/usb-Arduino__www.arduino.cc__(a bunch of numbers)

之后,我的 Arduino IDE 显示/dev/ttyACM0在工具/串口菜单中。

现在,一切都很好!

于 2014-10-11T11:31:18.753 回答
1

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

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

于 2014-01-31T21:41:50.337 回答
1

首先,确保 /dev/ttyUSB0 正常工作。例如插入鼠标并检查它是否有效。其次,尝试选择其他板。通常情况下,非原创板在其名称下无法正确识别。第三,尝试在上传草图时手动按下重置按钮。可能自动复位坏了。

于 2013-11-05T20:51:37.377 回答
1

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

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

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

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

于 2014-04-01T12:15:07.227 回答
1

你有什么东西连接到RESETArduino 上的引脚吗?

我在需要连接到RESETPin 的图形 LCD 上遇到了这个问题。在上传代码的同时断开 LCD 和引脚之间的跳线RESET,为我修复了它,那么您所要做的就是在代码完成上传后重新连接。

于 2017-04-12T17:41:52.223 回答
0

我对 Arduino Due 也有同样的问题,并且提出的大多数解决方案都不起作用。

L LED 常亮。通过卸载 IDE 并选择实验版本 1.5.8 解决了我的问题。然后在板上我选择了底部选项 Arduino Due(编程端口)。

当然,您还需要在编程端口上连接 USB 电缆。

于 2014-12-19T10:23:59.210 回答
0

您是否安装/更新了 FTDI 电缆的驱动程序?( http://arduino.cc/en/Guide/Howto上的第三步)。从我的 Raspberry Pi 运行 Arduino IDE 运行良好,无需显式安装驱动程序(它们是预先安装的,或者 Arduino IDE 安装程序负责它)。在我的 Mac 上,情况并非如此,除了 IDE 之外,我还必须安装电缆驱动程序。

于 2013-12-24T20:21:03.870 回答
0

我遇到了同样的问题并自己解决了。

首先:我有一个(OSEPP UNO r3 PLUS)。这是 OSEPP 制造的 Arduino Uno REV 3。

我刚买了一个 OSEPP 电机和伺服控制器防护罩。我刚让电机工作,然后我偶然发现了同样的错误。avrdude:stk500_recv():程序员没有响应。

我猜它在连接时创建/分配了一个新的串行端口。在菜单ToolsSerial Port下的 Arduino 程序中找到。我刚刚重新选择了与 Arduino Uno 和 bam 相关的那个,问题解决了。

于 2014-04-03T01:31:02.460 回答
0

我刚刚在同一问题上花费了最后几个小时...只需转到此处“ http://www.ftdichip.com/Drivers/VCP.htm ”,下载最新的驱动程序并重新启动。之后应该可以正常工作。我还下载了每晚的 Arduino 软件,但我并不认为这会有所作为。

于 2014-02-28T00:55:59.030 回答
0

在 MAC OS 中,只需重新启动计算机并在重新启动后工作。

于 2019-11-08T05:48:30.980 回答
0

就我而言,当我尝试做一些“奇怪”的算术表达式时,问题就出现了

例如 (3.14/4)/5 或 3.15%2.55

因此,我建议您检查所有算术表达式,以防其中一些无法由 Arduino 计算。

希望能帮助到你。

于 2017-01-23T12:24:51.197 回答
0

就我而言,这是错误的波特率。它调用这个命令:

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 **-b57600** -D -Uflash:w:C:\Users\Vahid\AppData\Local\Temp\arduino_build_527841/AnalogReadSerial.ino.hex:i 

如您所见,波特率设置为 57600。当您删除此参数 (-b57600) 并在命令行中运行它时,它工作正常。

于 2018-05-28T01:25:30.243 回答
0

对我来说,这就像设置正确的端口一样简单。

要设置它,请转到菜单ToolsPort,然后从 COM1 更改为适当的端口。

在此之后,我的程序正常工作。

于 2016-05-24T06:06:34.013 回答
0

我试图将我的伺服器连接到 Arduino 5V 引脚,但是处理器,这就是我失败的原因

avrdude:stk500_recv():程序员没有响应

解决方案:为舵机购买新的 Arduino 和外部 5 V 电源。

于 2015-08-07T15:25:04.807 回答
0

在我的情况下,新购买的板上的主芯片没有完全插入。- 一侧的芯片支脚已插入插槽,另一侧未完全插入。芯片略微倾斜。所以,我只是将芯片推入插槽,错误就消失了。

于 2021-01-29T07:24:02.067 回答
0

就我而言(Mini Pro),解决方案非常简单,不知道我是怎么错过的。我需要交叉 rx/tx 线。

解决方案:

  • Arduino Rx 引脚连接到 FTDI Tx 引脚。
  • Arduino Tx 引脚连接到 FTDI Rx 引脚。
于 2018-04-25T13:07:33.427 回答
0

尝试在没有 -b (波特率选项)的情况下加载程序。在 ~/.arduino15/preferences.txt 中设置 build.verbose=true,当 arduino.cc 没有运行时。在详细输出中,您将找到应从控制台加载的 hex 文件:

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

我只是用 328 版本替换了芯片 128,并且由于新的波特率 115200,我的板名从 Decimile 更改为 Uno 或 Ethernet。

于 2015-11-13T07:58:23.730 回答
0

我将我的 FT232RL 的DTR 引脚连接我的 Arduino 的 DTR 引脚,它解决了这个问题。

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

于 2020-01-26T19:33:53.080 回答
0

我的问题是我将 Arduino IDE 更新到了新版本并且没有重新连接电线。看起来这是个问题

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

于 2019-10-19T08:58:12.917 回答
0

如果您通过 USB 集线器连接 Arduino,请尝试将其直接连接到 Mac 上的 USB 端口之一。
这对我有用。

于 2016-04-18T20:23:10.253 回答
0

我必须选择正确的电路板。例如,转到菜单工具Arduino Nano

于 2016-05-06T08:59:35.150 回答
-1

你确定没有其他东西在使用你的连接吗?我有同样的问题,经过几个小时的研究,我发现我的根本原因是不同的。本质上,我不得不终止使用串行连接的 Python 脚本启动的任务。就我而言,这很好用:

sudo killall python

这将毫不客气地杀死所有当前的 python 进程。

于 2014-07-30T22:07:19.537 回答