avrdude:stk500v2_ReceiveMessage():超时

nat*_*rdy 25 arduino

这是我尝试运行ARDUINO程序时遇到的主要错误.完整的错误列表如下:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

int led=13;
void setup()
{
    pinMode(13,OUTPUT);
}

void loop()
{
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
}
Run Code Online (Sandbox Code Playgroud)

我尝试更新驱动程序(它们已完全更新)并下载一些程序.我有Windows 7,而我的arduino是MEGA 2560.它显示在设备管理器中,我的所有连接都是正确的.绿色PWR灯亮,闪烁的L灯也亮.更新时,RX和TX指示灯会闪烁.我几乎尝试了网上的所有内容.问题是什么?

aar*_*sti 17

Mega 2560出现此错误的另一个可能原因是,如果您的代码连续有三个惊叹号.也许在最近添加的字符串中.

连续3个爆炸标记导致Mega 2560引导加载程序进入监控模式,无法完成编程.

"!!!" <---打破Mega 2560 bootloader.

要解决此问题,请拔下Arduino USB以重置COM端口,然后仅使用两个惊叹号或两者之间的空格重新编译.然后像往常一样重新连接Arduino和程序.

是的,这一点我昨天和今天我找到了罪魁祸首.这是一个包含更多信息的链接:http://forum.arduino.cc/index.php?topic = 132595.0

  • 谢谢你!!!!这让我免去了很多个小时的头痛。 (3认同)

Nic*_*k T 12

错误消息基本上意味着程序员无法联系设备上的引导加载程序; 您尝试上传的代码与问题无关.

造成这种情况的原因可能是多种多样的,一些可能的问题:

  1. UART通信

    • 闪烁正在发生,所以希望你没有使用错误的端口.可能值得再次检查,有时USB COM设备安装在奇怪的端口号上.

    • 将TX连接到RX(如果可能,将它们与AVR断开连接),然后打开COM端口上的一个终端,如果键入它们,应该会看到回显的字符.如果你不这样做,那么芯片的上游就会出现问题,它可能是通信芯片(我认为Arduino 2560出于某种原因使用了辅助AVR而不是FTDI,因此可能会被破坏,无论是软件还是硬件)

  2. ATmega *bootloader

    • 由于某种原因,AVR没有执行引导加载程序.如果程序员在尝试连接之前没有重置微型,这可能就是原因.在程序员尝试连接时尝试重置AVR(按下并释放按钮).有时,在紧密循环中运行的软件会阻止引导加载程序连接.

    • 除此之外,保险丝可能已经搞砸了或代码被删除了.您需要重新刷新引导加载程序和正确的保险丝,再次,请参阅设备的相应信息页面.

  3. 仅限Arduino Mega 2560:ATmega8U/16U软件

    • 可能不工作,需要重新编程.请参阅信息页面上的 " 编程"部分,您需要在计算机上使用固件和Atmel兼容的DFU(设备固件更新)软件来重新刷新目标.
  4. 电路板,AVR或FTDI芯片的硬件损坏

    • 你被冲了; 需要一个新芯片.

查看此论坛帖子以获取更多想法.


Foa*_*oad 8

据我浅薄的了解,此错误会在不同的情况下出现:

  1. 您选择了错误的端口,或者根本没有选择。转到tools > ports并选择com连接 Arduino 的端口。

  2. 您选择了错误的主板。去tools > board寻找合适的主板。

  3. 您是否有这些 Arduino 复制品之一,或者您没有在微控制器上安装引导加载程序?我不知道这个问题的解决办法!如果您知道,请编辑我的帖子并添加说明。

  4. (仅限 Windows)您没有安装正确的驱动程序。您需要手动更新它们。

  5. 有时当你将电线连接到板上时,就会发生这种情况。您需要将电路板与已安装的任何面包板或电线分开,然后再次尝试上传。看来可用于串行通信的引脚0 (RX)和是有问题的,并且在上传代码时最好将其释放。1 (TX)

  6. 有时它是随机发生的,没有特定原因!

互联网上有各种各样的解决方案,但有时很难区分魔法!也许 Arduino 团队应该考虑更好的编译器错误来帮助用户区分这些不同的原因。

同样的问题也发生在我身上,上面的解决方案都不起作用。发生的情况是,我使用的是 Arduino UNO,一切都很好,但是当我购买 Arduino Mega 2560 时,无论我尝试上传什么草图,都会收到错误:

avrdude: stk500v2_ReceiveMessage(): timeout
Run Code Online (Sandbox Code Playgroud)

它只是在我的一台 Windows 计算机上,而另一台开箱即用就可以了。

解决方案:

解决我的问题的是转到tools > boards > Boards Manager...然后在打开的窗口的左上角updatable选择Type”。然后选择列表中的项目并按右侧的更新。

我不确定这是否能解决每个人的问题,但至少解决了我的问题。


Mic*_*nzl 7

我收到此错误是因为我没有在avrdude命令行中指定正确的程序员.如果您使用的是Arduino板,则必须指定"-c arduino".

此示例命令读取hfuse的状态:

avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
Run Code Online (Sandbox Code Playgroud)