2013-10-28 431 views
14

这是我尝试运行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_ReceiveMessage(): timeout 
avrdude: stk500v2_getsync(): timeout communicating with programmer 

我的代码如下:

int led=13; 
void setup() 
{ 
pinMode(13,OUTPUT); 
} 
void loop() 
{ 
digitalWrite(13,HIGH); 
delay(1000); 
digitalWrite(13,LOW); 
delay(1000); 
} 

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

+0

尽管这个问题在这里可能还不错,但您会在[EE.SE](http://electronics.stackexchange.com)上看到更多有关它的知识。 –

+0

当我尝试上传草图,而esp8266连接到我的arduino(兆2560)变成3.3V,GRD,Rx和Tx时,我遇到了同样的问题。断开连接后,它运行良好 – fnc12

回答

8

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

是什么原因导致这可能是众多及变化,一些可能出现的问题:

  1. UART通信

    • 闪烁正在发生的事情,所以希望你是不是使用了错误的端口。虽然可能需要再次检查,但有时USB COM设备会安装在奇怪的端口号上。

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

  2. 的ATmega *引导程序

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

    • 除此之外,保险丝可能已经混乱或代码被删除。您需要重新启动引导加载程序和适当的保险丝,然后再次查看适用于您设备的相应信息页面。

  3. Arduino的兆丰2560只:ATmega8U/16U软件

    • 可能无法工作,需要重新编程。请参阅Programming section on the info page,您将需要计算机上的固件和Atmel兼容的DFU(设备固件更新)软件来重新刷新目标。
  4. 到板上硬件损坏,AVR(S),或FTDI芯片

    • 你大清洗;需要一个新的芯片。

检查这个forum post一些更多的想法。

+0

我有一个Arduino兆丰正是同样的问题。最可能的是它是一个引导加载程序问题 - 因为如果我通过传递-D标志关闭“启用芯片启用周期”选项,我将程序成功烧制到芯片上(尽管我觉得有点慢)。谢谢,这些都是很好的指导。 OMG! –

0

这不是一个固定解决方案,但它可以帮助其他人。与Nick对我说的不同,这是由于我的程序中有代码。我有大型的ADK模型。该问题与用于处理和解析从USB连接返回到Android的返回字节[]的switch语句相关。它非常奇怪,因为它会每次都完美编译,但会按照OP的说法失败。我评论说,它运作良好。

5

我得到这个错误,因为我没有在avrdude命令行中指定正确的程序员。如果您使用的是Arduino板,则必须指定“-c arduino”。

这个例子命令读取hfuse的状态:

avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h 
0

我跑离Arduino的设置验证码,得到了同样的错误,决心改变
串口COM13
转到选项
工具后, >>串口>> COM132

0

如果您使用ino命令行:

ino upload 

它可能是因为你同时使用了arduino软件,试图杀死它。

3

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

连续3个标记使得Mega 2560 bootloader进入Monitor模式,无法完成编程。

“!!!” < ---打破Mega 2560引导程序。

要修复,请拔掉Arduino USB以重置COM端口,然后仅用两个感叹号或两者之间的空格重新编译。然后像往常一样重新连接Arduino和程序。

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

+0

你说得对。 –

0

我已经在我的笔记本电脑和超时问题直接连接到USB端口已被解决。

以前尝试通过端口复制器,但它甚至没有识别arduino,因此我选择了错误的端口 - 导致超时消息。

因此,请确保它在您的操作系统中可见。

0

寒舍理解这个错误出现与

  1. 你选择了错误的端口,或者你没有在所有不同的场景。去tools> ports ans选择你的Arduino连接到的端口
  2. 你选择了错误的板子。去工具>板找到合适的板
  3. 你有这些arduino的副本之一,或者你没有安装在微控制器上的引导加载程序。我不知道这个解决方案!如果您知道,请编辑我的帖子并添加说明。
  4. (仅适用于Windows)您没有安装正确的驱动程序。您需要手动更新它们。
  5. 有时当你有电线连接到板发生这种情况。您需要将电路板与安装的任何面包板或电线分开,然后再次尝试上传。看起来可用于串行通信的引脚0(RX)和1(TX)存在问题,并且在上传代码时更好。

  6. 有时坐下发生没有具体原因!

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

同样的问题发生在我身上,上述解决方案都没有奏效。实际情况是,我使用一个Arduino UNO,一切都很好,但是当我给她买一个Arduino兆2560,我想不管是什么草图上传我得到的错误:

avrdude: stk500v2_ReceiveMessage(): timeout 

,它只是在一个我的Windows电脑和另一个刚刚开箱即用。

解决方案:

什么解决我的问题是去工具>主板>板管理器...,然后在打开的窗口的左上方选择“类型”一节“更新”。然后选择列表中的项目并按下右侧的更新。

我不确定这是否会解决所有人的问题,但至少解决了我的问题。