“ avrdude:stk500_getsync():不同步:resp = 0x00,”又名叫Avr的Dude不允许我上传我的程序


98

前几天我做了一个很棒的程序,我想将其上传到我的Arduino。点击上传按钮后,一个名叫avr的卑鄙小伙子来阻止我,说:

avrdude:stk500_getsync():不同步:resp = 0x00

所有我想做的只是上载我的程序,但AVR不会让我。他甚至说不清,所以有人可以告诉我他想说什么,如何摆脱他吗?


即:

每当我尝试将程序上传到Arduino时,都会收到以下错误消息:

avrdude:stk500_getsync():不同步:resp = 0x00

这是什么意思,我该如何解决?


4
很常见的错误信息,并不总是微不足道的解决:electronics.stackexchange.com/...
jippie

12
好标题!我本人曾
犯过

6
+1:D ...我真的和你一样讨厌这个家伙!
David Refoua 2015年

尝试为arduino安装驱动程序(cp2102)。那确实帮助了我。感谢您的先前答复ppl :-)

这个2018年6月后解决了这个问题对我来说(第1回答):arduino.stackexchange.com/questions/51729/...
迈克尔西姆斯

Answers:


62

这是由您的计算机与Arduino之间的一般连接错误引起的,并且可能是由许多不同的特定问题引起的。

以下是一些常可解决此错误的简单方法:

  • 断开并重新连接USB电缆。
  • 按下板上的重置按钮。
  • 重新启动Arduino IDE。
  • 确保在中选择了正确的板Tools ► Board ►,例如,如果您使用的是Duemilanove 328,请选择该板而不是Duemilanove128。该板应说明微芯片上的版本。
  • 确保在中选择了正确的端口Tools ► Serial Port ►。确定这些端口位于哪个端口的一种方法是按照以下步骤操作:
    1. 断开USB电缆的连接。
    2. 转到Tools ► Serial Port ►查看列出的端口(例如COM4 COM5 COM14)。
    3. 重新连接USB电缆。
    4. 返回到Tools ► Serial Port ►,查看哪个端口以前没有出现过。
  • 确保数字引脚0和1没有连接任何部件,包括任何屏蔽。

如果这些都不起作用,您将要尝试通过更换部件来解决问题:在同一台arduino上尝试另一台计算机,在同一台计算机上尝试另一台arduino,然后尝试使用另一条USB电缆。

如果问题出在计算机上:

  • 仔细检查上方“轻松修复”列表中所有与计算机相关的问题。
  • 重新安装IDE。
  • 重新安装驱动程序。

如果问题出在Arduino上:

  • 在上面的“简单修复”列表中,仔细检查所有与主板相关的问题。
  • 确保微控制器正确就位。
  • 您可能需要刻录引导程序
  • 如果附近有另一只手,请更换微控制器。
  • 您可能已经使Arduino变砖了。对不起:(

3
还有其他可能的原因。您可能已经损坏了ATmega,可能已经损坏了ATmega上的引导加载程序,可能遇到了电源问题,或者其他各种可能性。这not in sync: resp=0x00实际上是一个通用的“ ATmega不响应”消息。任何可能导致ATmega不响应的事情都可能导致它。
康纳·沃尔夫

那么,我不能有0或1的任何东西吗?
2015年

2
@Tim您可以将东西连接到这些引脚,但是如果您想通过USB电缆与Arduino通信,则必须断开它们。
帽子的家伙

多年前,我在第一个Duemillanove上遇到了此错误。那是一块没用的UART芯片(或从USB到UART芯片的连接)。非常沮丧。我买了一个AVR程序员,烧掉了引导程序。购买了另一个预装了引导程序的CPU。直到供应商发送了替代品,我才能够加入Arduino迷世界(现在我有两个备用CPU)。
linhartr22

“断开并重新连接USB电缆”对我
Grace Shao

20

另一个解决方法:

更改Tools->Processor->Atmega 328PAtmega 328P (Old Bootloader)。提醒您,Processor只有在选择了某些特定的主板时,该选项才可用Tools>Board

这适用于我的带有CH340的Arduino Nano,使用Linux Ubuntu 17.10下的Arduino IDE 1.8.5。此外,如果您使用IDE 1.8.9或更高版本,并且获得旧的或克隆的Nano,则可能会发生这种情况。


3
那就是解决方案!新的引导程序使用两倍的波特率(115200而不是57600)。
Suuuehgi

1
您的回答解决了我的问题。谢谢!
Vladyslav Savchenko

12

不幸的是,这也可能意味着您烧掉了微控制器。在尝试上传新草图之前,您是否在做任何危险的事情?使用先前加载的草图,微控制器是否仍在工作?


10

如果以上步骤均无效,请尝试重新安装Avrdude和avr-gcc编译器。我的Mega开始受此困扰后,我不得不这样做。

如果分别安装了Avrdude和avr-gcc,则只需将它们卸载。如果没有,您可能必须重新安装Arduino IDE。这些步骤将取决于您的操作系统。


由于使用了工具链,导致问题极不可能发生。IMO,这太极端了。
asheeshr 2014年

3
这是我解决问题的唯一途径
TheDoctor 2014年

您在说什么安装过程?arduino编辑器工具刚刚解压缩。没有安装过程。
康纳·沃尔夫

9

我有同样的消息。每次通过选择正确的端口(例如“工具”然后“端口”下的USB)解决该问题。这是一个简单的步骤,但我总是忘记。我将拔下Arduino的电源以停止当前程序,将其重新插入计算机以上传新程序,并得到错误,崩溃,诅咒,只有那时,记住。


1
我认为这是最常见的解决方案。
小鸡

9

就我而言,我没有将FTDI芯片的RTS引脚连接到电容器,该电容器连接到Arduino Pro Mini的RST引脚。安装此连接后,我不再出现错误,并且能够上传代码。

尼克·加蒙(Nick Gammon)在论坛上对此进行了解释。我添加了一张关于电容器放置位置/方式的图片。 在此处输入图片说明


+1可以将USB程序员直接连接到atmega芯片上。
raddevus

我的电路板上也有一些不良连接,拔下了所有插头,然后上传了一个基本草图,它就可以了。现在看一下哪条电缆不在正确的位置
Seraf

5

我有同样的问题。我尝试将IDE安装在另一台笔记本电脑上,并从该笔记本电脑上载了程序。问题解决了。然后我回到笔记本电脑上,卸载了IDE并重新安装它。

但是,我不满意,因为我找不到问题的根源...所以我尝试以完全相同的方式再次运行所有内容...我发现了问题,但不确定这是否可能是导致此问题的真正原因。

在我的项目中,我需要在arduino和MATLAB(GUI)之间进行串行通信。为了查看/验证MATLAB(GUI)串行数据的输出(类型),我使用了HYPERTERMINAL和VIRTUAL SERIAL PORT EMULATOR。我注意到,每次当我的串行监视器在其上运行超级终端或VSPE时,它都会破坏程序的上传功能。我不确定是否是因为VSPE或HYPERTERMINAL,但是重新安装IDE对我来说有效。


2
我认为串行控制线之一是DTR,用于重置Arduino。当您尝试对Arduino进行编程时,您的终端程序可能会干扰。
linhartr22

仅当我还删除了包含所有设置和额外库的Arduino库文件夹时,此方法才对我有用。
杰斯罗(Jethro)

3

对于使用Linux Mint的用户,我发现通过选择“ TTY SO”端口而不是标有“ Arduino”的端口可以正常工作(我无法确切告诉您,因为我现在没有那台计算机) 。

然后,下次我使用Arduino时,我再次收到相同的消息,因此我切换回“ Arduino”端口,此后一直如此。

我不像你们其他人那样精通技术,所以我不知道为什么这行得通或问题出在什么地方,但是我真正关心的只是它起作用了。也许这对某人有用。


3

我卸载了IDE和驱动程序等,然后重新安装了所有这些,然后以管理员身份运行Arduino IDE,并设置为以Windows 7(我目前使用的是10)运行兼容性。

我也将编程器更改为AVR ISP(我认为这并不重要,但是无论如何我都将其更改了)。

所有人都在工作...希望,这也可以帮助其他人。


2

一个不寻常的错误,但是我已经交换了很多微控制器,当一个错误的正确安装时,我得到了这个错误。的ATMega328修复了!


1

控制器本身也可能以错误的方式放置在Arduino的插槽中。这可能对控制器很危险(可能会发生故障),但就我而言,它仅给出了不同步错误,阻止了我上传代码。

因此,只需检查IC上的凹口方向是否正确即可(您可以在线检查电路板上的图像)。Uno控制器上的凹槽应指向板的边缘。


1

我也遇到了这个错误。在焊接到接头后,这是第一次使用新的Arduino Nano板。只是在眨眼素描上,没有任何东西连接到板上。

我发现GROUND和RESET引脚之间有少量焊料。我选择了它,然后可以上传了。

我想如果您在某处电路上有相同的短路可能会发生这种情况。


1

全新的Mini Pro遇到了同样的错误。由于大多数Arduino都预装了默认的眨眼程序,因此我知道该单元可能还可以。

因此,我检查了刚刚焊接了一次的插头,发现TX0引脚上的焊料不足。重新焊接后的所有作品。


1

大量拔出插头后,检查端口,重新启动IDE等。似乎与Arduino Mega 2560修复此故障有所不同的是,卸载Windows USB arduino驱动程序,然后在此处重新安装它,并从列表中手动选择驱动程序并从列表中手动选择> com ports> arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml 我可能有在我的Uno上对其进行了测试,然后返回大型市场,因此与Uno进行交流的机会很小,这使AVRDUDE感到高兴,但不太可能。


1

当我在上传到板上时遇到问题时,我会上传另一个程序,例如眨眼示例。这似乎重置了某些内容,然后我就可以上传自己的程序(很大)。

也许值得尝试一下,看看它是否适合您的情况,尽管我不知道为什么会起作用。


什么板和引导程序?
朱拉伊(Juraj)

Arduino Nano,ATMega328P(非第三方)。硬件版本:2,固件版本:1.16,设备签名为0x1e950f我尚未检查引导加载程序,但它们被广告宣传为“传统引导加载程序”
Jethro

所以你的答案是具体的老纳米引导程序
尤拉伊

谢谢!我将研究引导加载程序并尝试对其进行升级。您有关于此错误的任何信息吗?
杰斯罗(Jethro)

1

我的Uno董事会也遇到了类似的问题

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x90

尝试了许多方法

  • 发送数据包之前按重置
  • 不同的IDE版本
  • 更换电缆
  • 更改控制器本身
  • 回送测试

但以上所有方法均失败。

我使用Ubuntu 16.04.4 LTS 4.15.0-33-generic(在撰写此评论时)。CDC ACM模块未加载,因此未/dev/ttyACM0创建任何设备来选择Arduino IDE -> Tools -> Port

因此,获取并加载模块名称

$ lsusb 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


$ sudo modprobe cdc-acm

上面的命令将插入所需的模块。现在我可以选择正确的端口并上传代码

在对我有用的各种解决方案中,希望这对某人也有所帮助。



0

我今天在某些代码中遇到了同样的问题,并按如下方式解决了它:

1-首先,我运行了一个基本的LED闪烁代码。它给出了相同的错误。它确认错误是在上传中,与编译无关。我还检查了我的代码是否可以正常编译。

2-我拿了另一块板,但是在这台PC上工作正常。这意味着计算机和USB线都可以。

3-我将故障板连接到另一台PC,令人惊讶的是,上传时没有出现此类错误。这给了我有关第一台PC中驱动程序问题的提示。

4-因此,我从此处下载了驱动程序并重新安装在第一台PC上

(请确保在通过此链接安装驱动程序时,您的电路板保持与PC的连接)

现在工作正常:-)


0

我在具有Arduino Nano的Linux Mint 17.3笔记本电脑中遇到此错误avrdude:stk500_getsync():不同步:resp = 0x00

解决了:

  • 删除名称中带有“ arduino”或“ avr”的所有内容
  • 删除目录.arduino和.arduino15(注意名称中的点)
  • 通过卸载数据包删除了版本1.8.7
  • apt-get install arduino(版本1.1.0)
  • 用简单的草图测试(一切正常)
  • 安装了版本1.8.7并安装了数据包
  • 编译。
  • 选择用于处理器的ATmega328p(Old bootloader),用于卡的Arduino Nano和用于端口的/ dev / ttyUSB0 => IT WORKS!

在这种情况下,“老引导程序”似乎是诀窍。我现在都关心版本1.1.0和1.8.7。


您应该先阅读aguadopd的答案
Juraj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.