Fedora下Arduino上传错误:"stk500_recv():程序员未响应"

13

我正在尝试在Fedora Core 15 Linux中使用Arduino IDE上传股票Blink草图。我收到了这个错误:

avrdude:stk500_recv():程序员没有响应

重现此问题的方法:

  1. 通过USB电缆插入Arduino Uno板
  2. 打开Arduino IDE
  3. 菜单“文件”→“示例”→“1.基础知识”→“Blink”
  4. 菜单“工具”→“串行端口”→然后选中“/dev/ttyACM0”框
  5. 菜单“工具”→“板”→“Arduino Uno”
  6. 单击“播放”按钮以验证/编译(此步骤成功)
  7. 单击“上传”按钮,以获取错误

我在Windows XP中尝试了完全相同的步骤,上传成功,因此我必须没有正确配置Fedora。

我遵循了Arduino Playground instructions,使用yum安装客户端,并将我的用户ID添加到组uucplockdialout中。

我没有按照指南中的 RXTX修复 - 链接正确的文件 步骤进行操作,因为给定的命令没有返回任何匹配项:find ~ -name librxtxSerial.so -o -name RXTXcomm.jar | grep -v Download

11个回答

9
提交程序之前,请确保您已从菜单 工具 中选择了正确的板类型。

2
遇到了相同的问题,在我的情况下,我的板子是一个通用的_ATmega328P Arduino兼容Nano V3_,我在网上购买的,它具有迷你USB接口。重置时的13号引脚的LED闪烁得很好,这表明它带有一个启动加载器。我一直尝试多种不同的开发板类型,包括_Arduino Mini_,但只有当我选择了 Arduino Mini _Pro_时,我才最终能够上传代码。现在可以使用了。 - ovo
Arduino Pro Mini 对我也起作用了。非常感谢! - Joao Carlos

8
检查一下你的数字引脚0或1是否连接了跳线。这些引脚也具有串行通信功能。因为你在使用通过USB电缆提供的串行连接上传Arduino板,所以你不想让板子的串行端口通过0或1引脚参与其他活动。请留意不要删除HTML标签。

这也解决了我的问题。我将数字引脚0和1连接到N沟道MOSFET的门上,这足以阻止Arduino编程。 - gbmhunter
同样的问题。我将引脚0和1连接到另一个扩展板上。非常感谢! - Yit Ming

3
在我的情况下,转到菜单 工具处理器 并更改为 ATMega328P(旧的引导加载程序)。然后问题就解决了。
但在上传之前,请确保进行chmod操作。
sudo chmod a+rw /dev/ttyUSB0

关于“处理器”:你是不是指“程序员”? - Peter Mortensen
chmod这样做不是有点冒险吗?这不是允许所有人访问吗?难道不能通过将当前用户包含在“拨号”组中来实现吗?(参考链接:https://unix.stackexchange.com/questions/14354/read-write-to-a-serial-port-without-root/14363#14363) - Peter Mortensen

2
对我来说,更换电缆解决了问题。
我使用的是Ubuntu 17.04 (Zesty Zapus)、带有ATmega28的Arduino Nano和一根带有铁氧体扼流圈的USB电缆(我不认为铁氧体扼流圈是问题的原因)。

1
不,劣质的USB数据线是非常常见的错误源。 - Peter Mortensen

2
这听起来很可能是当时 AVRDUDE 中存在的 一个错误 导致的。现在只需要运行 yum update AVRDUDE 就可以修复它了。

1

对我有用的解决方法:

如果您将USBasp编程器(或其他类型的ICSP编程器)插入了Arduino板上(但未插入PC),因为您刚刚使用它刷写了Arduino板的引导程序,请将其从Arduino上拔下。将USBasp编程器和Arduino之间的5V线路断开对我来说已经足够了。现在上传功能可以正常工作(USBasp编程器仍然放在工作台上,除了5V引脚外仍与Arduino连接着)。


1
Arduino Uno R3,Mac OS X v10.8.3(Mountain Lion),任何版本的Arduino.app。对我来说,更换USB电缆可以解决此错误。

1
我相信在为什么我不能上传我的程序到Arduino板?中的指示说

在Linux上,Uno和Mega 2560显示为设备形式   / dev / ttyACM0

并不总是适用。 在我的 Ubuntu 14.10(Utopic Unicorn)中,我可以在菜单工具串行端口中看到该端口,但当选择并尝试上传到Arduino Nano V3时,我会遇到错误

stk500_recv():程序员没有响应

将工具 ->串行端口更改为/ dev / ttyUSB0解决了问题。

我猜测在我的系统中可能是这种情况,在插入Arduino之前,同一个USB端口上已经连接了另一台设备。也许在重新启动后情况会有所不同;我不知道,没有测试过。但无论是什么原因,好消息是问题可以解决。 您可以通过先检查未插入Arduino时可用的端口(菜单工具串口),然后再检查插入Arduino后添加的端口来轻松检查正确的串口。

0
经过数小时的搜索,问题已得到解决:
选择菜单 工具程序员Arduino as ISP

你确定吗?对于正常使用来说,它设置为什么并不重要吧?这不仅仅是为了烧录引导加载程序等操作(需要额外的硬件支持)吗? - Peter Mortensen

0

自从这个问题被发布以来,Arduino已经发布了一个新的稳定版本。他们现在是1.0版本,并且可以在Fedora Core Linux 16上运行。您可以在此处下载:http://arduino.cc/en/Main/Software


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接