Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 在设备管理器中检测到,但随后断开连接_Arduino - Fatal编程技术网

Arduino 在设备管理器中检测到,但随后断开连接

Arduino 在设备管理器中检测到,但随后断开连接,arduino,Arduino,在中检测到,但随后断开连接 所以,这就是我正在做的。将Arduino Leonardo连接到我的笔记本电脑。它在设备管理器中被检测到(我也更新了驱动程序)。然而,我很快听到一声嘟嘟声,莱昂纳多就被卸载了。如果我按下“重置”按钮,它会再次被检测到。但是,几秒钟后,它再次断开连接。设备管理器显示消息 当前,此硬件设备未连接到计算机。(代码45) 注意:几周前它还可以正常工作。我正在使用Windows 7。请确保Arduino没有连接任何东西,只有电缆,然后重试。如果问题仍然存在,请尝试更换电缆并在其

在中检测到,但随后断开连接

所以,这就是我正在做的。将Arduino Leonardo连接到我的笔记本电脑。它在设备管理器中被检测到(我也更新了驱动程序)。然而,我很快听到一声嘟嘟声,莱昂纳多就被卸载了。如果我按下“重置”按钮,它会再次被检测到。但是,几秒钟后,它再次断开连接。设备管理器显示消息

当前,此硬件设备未连接到计算机。(代码45)


注意:几周前它还可以正常工作。我正在使用Windows 7。

请确保Arduino没有连接任何东西,只有电缆,然后重试。如果问题仍然存在,请尝试更换电缆并在其他USB端口上进行测试


试着阅读这篇文章。如果您能在设备管理器中看到Arduino几秒钟,请尝试重新安装驱动程序。驱动程序在Arduino文件夹中。

Arduino Leonardo的软重置似乎有问题,通常在连接Arduino Leonardo时,它会在设备管理器(如Ard…引导加载程序(COMX))中显示几秒钟,然后Arduino Leonardo会显示在不同的COM端口上

我知道,对你来说,在那之后它就消失了。
尝试在Arduino IDE中选择该端口,然后您必须尝试加载一些草图,如blink.ino。同时按下重置按钮,然后当草图开始上传时,释放重置按钮。这对我很有效。

我也有同样的问题。按下重置键后,我的Arduino Micro第一次被正常检测到。下面是我的
/var/log/syslog
(没有时间戳等)的相应摘录:

但仅仅几秒钟后,它就断开了:

usb 6-1: USB disconnect, device number 56
经过长时间的搜索,我找到了如何从这种致命情况中恢复过来:

  • 通过USB电缆连接Arduino
  • 打开ArduinoIDE并加载“闪烁”示例
  • 打开一个shell并输入:
    tail-f/var/log/syslog
    。这用于观察Arduino与哪个
    /dev/tty
    端口关联
  • 现在您必须快速:重置Arduino,查看它获得的端口,并在IDE中的“工具”菜单下选择该端口→ 串口。您必须在Arduino再次断开连接之前执行此操作,否则将无法访问正确的菜单点。你可能需要尝试一两次才能得到它。这是最难的部分
  • 再次按下Arduino上的“重置”,然后立即按下Arduino IDE中的上载按钮
  • 您的Arduino应该在上传后不久启动闪烁程序,并“治愈”
经过进一步的调查,我发现了整个痛苦的原因:在一些被遗忘的文件的源代码中,有一个main()函数(几周前我为Linux/g++下的一些测试编写了这个函数)。编译器现在更喜欢使用该main()而不是IDE环境中的标准main()

其结果是USB断开连接,可能是因为原来的main()进行了一些初始化,而这些初始化现在已丢失。

您可能知道这些“神秘”引脚

拿一个Arduino Uno并添加所需的“Arduino作为程序员”代码,将莱昂纳多连接到Arduino Uno,现在你可以对莱昂纳多进行编程了——但你会用核武器炸开莱昂纳多的引导程序


在IDE中,转到“文件”并将鼠标移动到“使用Arduino作为程序员上传”,并享受您的乐趣。如果你采用这种方法,不要购买USB,因为它有与莱昂纳多一样的32U4芯片,并且没有ICSP引脚。也就是说,除非你能将引脚焊接到六个孔中

我尝试了不同的USB电缆,重新安装了驱动程序。你在另一台电脑上测试过了吗。这可能有助于您了解问题是PC还是Arduino。我已经在另一台计算机上进行了测试。同样的结果。我也烧了引导程序。但是,当我尝试上传驱动程序时,驱动程序就会被卸载。因此,很明显,您使用的Arduino存在问题。就这样。您的Arduino有故障。此解决方案工作正常。复制了几次。谢谢虽然,我的代码中没有main(),所以我仍然不知道它为什么会导致这样的问题。同样的问题(在linux上),我必须先禁用ModemManager.service(
sudo systemctl stop ModemManager.service
),然后你的方法才起作用。为了补充这个答案,我点击了上传,等待编译完成,当它说上传时,我点击了莱昂纳多上的重置按钮,并成功地将闪烁草图上传到我的板上。现在板上有了一个很好的草图,它正确地显示在我的COM端口列表中。
usb 6-1: USB disconnect, device number 56