Arduino草图上传问题 – avrdude:stk500_recv():程序员没有响应
我有一个Atmega328的Arduino Duemilanove。我正在使用Ubuntu 12.04,而Arduino IDE的版本是1.0。 最近,我试着上传一些样本草图,比如Blink。 然而,我的尝试都没有工作,他们每次尝试时都会导致相同的错误 – avrdude:stk500_recv():程序员没有响应。
我在Tools – > Serial Port下启用了'/ dev / ttyUSB0'。 我也从列表中select了正确的主板(Duemilanove和Atmega 328)。 但是,我无法解决这个问题。 我也在网上search,这个问题的其他答案似乎没有为我工作。 有人能告诉我为什么我遇到这个问题,帮我解决吗?
更新 :我试着把板载的Atmega旋转到另一个方向。 现在,我没有遇到任何问题上传,但事后没有任何反应。 车载LED也不会闪烁。
我有一个Crowduino的问题,在OSX上运行Arduino IDE。 我的解决scheme是在上传过程中打开详细输出(在arduino IDE首选项窗格中)。
然后,在上传的时候,你可以看到avrdude: ser_recv(): programmer is not responding
在avrdude: ser_recv(): programmer is not responding
错误之前发送三个包avrdude: Send: 0 [30] [20]
(相应的RX在板上闪烁)。
诀窍就是在发送这三个数据包之前立即打开电路板上的复位button。 然后程序将成功上传。
确保Tx / Rx引脚上没有input,然后工作。
我知道这是一个旧的post,但是在这个好主意的答案中有一些巫术话题,让我们试着对发生的事情做一个更真实的总结,并总结一下好的东西来检查:
基本上,当发生这种情况时,为avrdude
启用详细模式是一个好主意,以便更好地了解发生的事情。 为此,您只需进入首选项并选中详细模式框。 离开arduino IDE也是一个好主意,并且启动一个控制台,以便在阅读avrdude
的输出时更加舒适,您将点击upload
button。
在命令调用中放置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
时avrdude: stk500_recv(): programmer is not responding
,它基本上意味着有什么错误发生,实际上开始闪烁之前 。 基本上你必须检查(从硬件到软件,从低到高):
- 如果电缆和/或连接器没有微切口;
- 如果没有焊点短路(即接触金属物体),则意味着:
- 如果在
Rx
和Tx
之间PCB上没有短路(通常是引脚1
和0
); - 如果没有接触到电路板下面的金属元件,或者元件腿之间的微小部分(如FTDI,atmega芯片或其他)
- 如果在
- 如果atmega芯片未断电(GND / VCC快捷或切断或VCCinput死机…);
- 如果Arduino的
1
和0
引脚没有被某个屏蔽或定制devise使用(因为它具有独立的USB处理,所以不适用于leonardo)。 - 如果USB到UART转换器没有问题(旧版本的转换器上的
FTDI
或者较新的Unos上的Atmega16U2
); - 如果Atmega328芯片被炸或错误安装;
- 如果引导程序已被覆盖或失败;
- 如果正确的波特率适用于进入自举程序;
- 如果目标MCU和Board设置了正确的设置;
通常avrdude -v -v -v -v
可以帮助很多人发现它在哪个阶段失败。 无论是USB连接(电缆故障,USB / UART,PCB …),还是引导加载程序问题。
更新 :我试着把板载的Atmega旋转到另一个方向。 现在,我没有遇到任何问题上传,但事后没有任何反应。 车载LED也不会闪烁。
恐怕如果你颠倒了atmega的位置,然后它不起作用,那么你把电源放在数字引脚上的事实可能会烧毁你的芯片。
试着看看你的主板是否被正确select。 点击菜单Tools – > Board,检查是否select了正确的板子。
我也遇到过这个问题,我通过重新安装USB串口驱动来解决这个问题。 请参见: http : //arduino.cc/en/Guide/Howto和http://www.ftdichip.com/Drivers/VCP.htm
您可以检查是否有任何跳线连接到引脚0和1,引脚用于串行通信,插入的电线可以防止代码上传到电路板上。
如果没有插入任何东西,这可能是avrdude
一个错误,你可以尝试更新它。
希望能帮助到你! 🙂
以上错误分3个阶段
- 如果引导装载程序已经崩溃
- 如果你没有从IDE中select适当的端口和正确的板子
- 如果你与其他串口通信已经连接,那么GND和Tx引脚连接到其他通信设备
我按照以下说明解决了OS X Yosemite 10.10的问题:
http://www.mommosoft.com/blog/2014/10/24/ftdi-chip-and-os-x-10-10/
然而,hoipolloi提出的这个技巧也是一个临时的解决方法。
在Windows 7上 ,我多次遇到这个问题,每次都有不同的错误信息。 基本上,IDE发送到错误的端口。 要解决这个问题,只需进入“工具” – >“端口” – > [select您的开发板所在的COM端口]。
确保仔细检查你的主板的端口:
1)启动设备pipe理器
2)确保您的Arduino驱动程序在与IDE端口设置相匹配的端口下面列出(如上所述)
3)我的电路板在端口COM1
。 如果你愿意,你可以简单地在驱动程序的高级设置中更改端口:
我在我的Arduino上也有这个问题。 它发生在我的两个Arduinos(一个Arduino Uno和一个与FTDI相连的Arduino Pro上)。
对于Uno,我把电缆连接到我的电脑,然后按上传,然后开始计数,直到“TX”LED闪烁。 然后重复上传,但在TX LED闪烁之前,点击重置button,上传成功。
我后来确定,更换USB电缆解决了这个问题。
我也一样。 在我第一次尝试Arduino UNO。 我的解决办法很简单。 只需拔出,然后插入USB电缆。 希望对你有效。
首先,确保/ dev / ttyUSB0有效。 例如插入鼠标并检查它的工作。 其次,尝试select其他板子。 非原创电路板往往不能正确识别其名称。 第三,尝试上传草图时手动按下重置button。 可能自动重置被打破。
我从这里下载并安装了旧的FDTM驱动程序,解决了一个问题。
尝试安装FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg
,然后重新启动Arduino。
只是想我会指出,我的全新Arduino Uno Rev3板使用以下LInux驱动程序:
Device Drivers |-USB Drivers |-USB Modem (CDC ACM) support
这在最近的LInux 3.x内核中被称为: CONFIG_USB_ACM:
选项。
这个设备然后是: /dev/ttyACM0
或类似的。
所以我find了这个原因…改变我的串口到/dev/tty.usbmodem2131修复它。 原来我一直在使用错误的串口!
你可以试试:
- 检入preferences.txt serial.debug_rate:
serial.debug_rate=9600
- 只要上传,就尝试点击arduino的重置button。
- 否则尝试在arduino-> tools菜单中select另一张卡,然后重新select列表中的卡。
只是想我会添加一个解决scheme,为我工作在Mac Pro(桌面)上运行
我得到了同样的错误,事实certificate,因为我已经连接到外围设备(我的显示器),而不是在PC本身的USB USB。 立即停止任何错误和一个简单的解决scheme。
以上答案的组合解决了我的问题:
-
执行了java更新:
sudo apt-get install default-jdk
-
然后杀死了arduino IDE并重启了它
-
现在我的正确的董事会出现了(arduino兆丰2560,之前兆丰1280是唯一的select)
-
对于司机,我做到了这一点:
sudo chmod a+rw /dev/serial/by-id/usb-Arduino__www.arduino.cc__(a bunch of numbers)
之后,我的arduino IDE在工具/串口菜单中显示/dev/ttyACM0
现在,一切都很好!
你有什么东西连接到Arduino的RESET
引脚?
我遇到了一个需要连接到RESET
引脚的graphicsLCD的问题。 断开LCD与RESET
引脚之间的连接线,上传代码将其固定,然后只要代码完成上传,您就必须重新连接。
您是否安装/更新FTDI电缆的驱动程序? ( http://arduino.cc/en/Guide/Howto上的第三步)。; 从我的Raspberry Pi运行Arduino IDE运行良好,没有明确安装驱动程序(无论是预安装的还是Arduino IDE安装程序处理的)。 在我的Mac上,情况并非如此,除了IDE之外,我还必须安装电缆驱动程序。
我刚刚在这个相同的问题上花了最后的几个小时…只要去这里“ http://www.ftdichip.com/Drivers/VCP.htm ”,下载最新的驱动程序,并重新启动。 之后应该工作得很好。 我也下载了Arduino软件的一个晚上,但我没有夸大其词。
我有同样的问题,自己解决。
首先:我有一个(OSEPP UNO r3 PLUS)。 这是由OSEPP制造的Arduino UNO REV 3。
我刚刚买了一个OSEPP电机和伺服控制器屏蔽。 我刚刚得到了电机的工作,然后我偶然发现了同样的错误。 avrdude:stk500_recv():程序员没有响应。
我猜想,当它连接它/分配了一个新的串行端口。 在“工具>串行端口”下的arduino程序中find。 我刚刚重新select了与UNO相关的那个,解决了问题。
希望能帮助别人。
我和arduino有同样的问题,因为提出的大部分解决scheme都不起作用。 L LED一直亮着。 我的问题是通过取消执行IDE并select实验版本1.5.8来解决,然后在主板上我select了底层选项Arduino Due(编程端口),当然您也需要在编程端口上连接USB。
这可能会被阻止,但它让我感到震惊:确保您的USB电缆(在Arduino一侧)连接正确(完全插入)。 确保已按照此处所述(适用于Windows)检测到设备: https : //stackoverflow.com/a/26913070/3361975
我试图把我的伺服器连接到arduino的5V引脚,把处理器连接起来,这就是为什么我得到了这个故障
avrdude:stk500_recv():程序员没有响应
解决scheme:购买新的arduino和伺服的外部5V电源。
尝试加载没有-b(波特率选项)的程序。 在〜/ .arduino15 / preferences.txt中设置build.verbose = true,当arduino.cc没有运行。 在详细输出中,您将find应该从控制台加载的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版本来replace芯片128,并且由于新的波特率115200,我的主板名称被更改为Uno或以太网。
如果您通过USB集线器连接Arduino,请尝试将其直接连接到Mac上的其中一个USB端口。
这对我有效。
我不得不select正确的板子 。 转到工具 – > 电路板 – > Arduino纳米例如。
对我来说,就像设置正确的端口一样简单。
要设置到工具>端口,并从COM1更改为适当的端口。
在此之后,我的程序正常工作
感谢@hoipolloi寻找解决scheme的正确方向。 无论如何,我必须做一些不同的步骤来解决这个问题。
我的情况UNO工作得很好,但在玩过草图后突然停下来。 我正在接收stk500_recv(): programmer is not responding
所有的时间,没有任何工作。 然后我注意到我的电路板上的LED 13一直亮着。 看起来好像一些硬圈的草图在板子上一遍又一遍地跑着,阻挡了对板子的任何input。 不知道,这只是我的感觉。
我试图在没有任何运气的情况下点击RESET,突然尝试以下步骤:
- 拔下电路板。
- 点击并按住RESET。
- 再次插入。
- 等几秒钟。
- 松开RESETbutton。
在此之后,我注意到板载13 LEDclosures了一秒钟,然后再次打开。 看起来板子实际上正在复位时,有一个短暂的重置窗口。 然后,在@ hoipolloi的解决scheme中,我发现了3个数据包发送之前的“重置”时刻。
希望这可以帮助你找出问题,如果没有其他解决scheme的作品。
提示 。 如果在控制台中上传草图时看不到三条Send: 0 [30] [20]
行,请执行以下操作:
- 点击Arduino IDE中的“上传”。
- 看看日志窗口。 你将能够find像这样的一行:
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
- 看起来像是吞下换行符或像这里的空格符号
-CE:\Program Files...
它应该是-CE:\Program Files
。 复制这个像记事本,添加缺less的空间,使这一行:
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 -v
参数。 最初,Arduino Studio只使用一个。