这是我尝试运行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
我的代码如下:
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 :(得分:14)
Mega 2560出现此错误的另一个可能原因是,如果您的代码连续有三个惊叹号。也许在最近添加的字符串中。
连续3个爆炸标记导致Mega 2560引导加载程序进入监控模式,无法完成编程。
" !!!" < ---打破Mega 2560 bootloader。
要修复,请拔下Arduino USB以重置COM端口,然后仅使用两个感叹号重新编译,或者在其间或之间使用空格重新编译。然后像往常一样重新连接Arduino和程序。
是的,我昨天和今天找到了我,追查了罪魁祸首。以下链接包含更多信息:http://forum.arduino.cc/index.php?topic=132595.0
答案 1 :(得分:12)
错误消息基本上意味着程序员无法联系设备上的引导加载程序;您尝试上传的代码与此问题无关。
导致这种情况的原因可能是多种多样的,一些可能的问题:
UART通信
正在发生闪烁,所以希望你没有使用错误的端口。可能值得再次检查,有时USB COM设备安装在奇怪的端口号上。
将TX连接到RX(如果可能,将它们与AVR断开连接)然后打开COM端口上的终端,如果键入它们,您应该看到回显的字符。如果你不这样做,那么芯片的上游就会出现问题,它可能是通信芯片(我认为Arduino 2560出于某种原因使用辅助AVR而不是FTDI,因此可能会破坏它的软件或硬件)
ATmega *
bootloader
由于某种原因,AVR没有执行引导加载程序。如果程序员在尝试连接之前没有重置微型,这可能就是原因。在程序员尝试连接时尝试重置AVR(按下并释放按钮)。有时,在紧密循环中运行的软件会阻止引导程序连接。
除此之外,保险丝可能已经弄乱或代码被删除。您需要重新刷新引导加载程序和正确的保险丝,再次,请参阅设备的相应信息页。
仅限Arduino Mega 2560 :ATmega8U / 16U软件
电路板,AVR或FTDI芯片的硬件损坏
请查看此forum post以获取更多建议。
答案 2 :(得分:6)
我收到此错误是因为我没有在avrdude命令行中指定正确的程序员。你必须指定" -c arduino"如果您使用的是Arduino板。
此示例命令读取hfuse的状态:
avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
答案 3 :(得分:3)
根据我的谦虚理解,这个错误出现在不同的场景中
有时当您将电线连接到电路板时,会发生这种情况。您需要将电路板与已安装的任何面包板或电线分开,然后再次尝试上传。可能用于串行通信的引脚0(RX)和1(TX)似乎存在问题,并且在上传代码时可以更好地免费使用。
有时它会随机发生,无特殊原因!
互联网上有各种各样的解决方案,有时难以区分魔法!也许Arduino团队应该考虑更好的编译器错误,帮助用户区分这些不同的原因。
同样的问题发生在我身上,上述解决方案都没有奏效。发生的事情是我使用的是Arduino uno并且一切都很好,但是当我打开Arduino Mega 2560时,无论我试图上传什么样的草图,我都收到了错误:
avrdude: stk500v2_ReceiveMessage(): timeout
它只是在我的一台Windows电脑上,另一台开箱即用。
解决方案:
解决了我的问题是去工具> board> Boards Manager ...然后在打开的窗口的左上方选择“Type”部分中的“可更新”。然后选择列表中的项目并按右侧的更新。
我不确定这是否会解决所有问题,但至少解决了我的问题。
答案 4 :(得分:0)
这不是一个真正的解决方案,但它可以帮助其他人。不像尼克曾经说过的,这是由于我的程序中的代码。我有大型ADK模型。该问题与switch语句相关联,用于处理和解析从usb连接到Android的返回byte []。它非常奇怪,因为它每次都会很好地编译,但会像OP所说的那样失败。我评论了它并且工作正常。
答案 5 :(得分:0)
我从Arduino设置运行此代码,更改后得到相同的错误解决
串口到COM13
转到选项
工具>>串口>> COM132
答案 6 :(得分:0)
如果使用ino命令行:
ino upload
可能是因为你同时使用arduino软件,试图杀死它。
答案 7 :(得分:0)
我已直接在笔记本电脑上连接USB端口,并且已解决超时问题。
以前尝试过端口复制器,但它甚至没有识别出arduino,因此我选择了错误的端口 - 导致超时消息。
请确保您的操作系统可以看到它。
答案 8 :(得分:0)
确保串行监视器未运行,并且没有进行任何读写dev/tty/S0
(或您使用的端口)的操作,这可能会导致上传干扰。
答案 9 :(得分:0)
我遇到了同样的问题,就我而言,解决方案是使用Windows 10设备管理器上的Windows Update更新usb串行驱动程序。无需下载特定于驱动程序的驱动程序,我只是让Windows Update查找合适的驱动程序。
答案 10 :(得分:0)
打开终端并输入:
$ sudo usermod -a -G dialout
(此命令是可选的)
$ **sudo chmod a+rw /dev/ttyACM0**
(此命令必须成功)
答案 11 :(得分:0)
我遇到了同样的问题。但问题的根本原因。设置不正确的通信,这就是我发生通信超时的原因。
解决方案:如果您通过 USB 端口连接到笔记本电脑。 将端口更改为 USB。请按照步骤
它对我来说很好。
答案 12 :(得分:-1)
我的aurdino mega 2560返回同样的错误。似乎问题存在于非官方克隆中。在上传开始之前按下重置按钮解决了该问题,如下面的视频所示。
https://www.youtube.com/watch?v=tAzjO4v7oF4&list=LLDn5ewJDzz53IiwWmZTgQnQ&index=1