【问题标题】:Leonardo: Gets detected in Device Manager but then gets disconnected莱昂纳多:在设备管理器中检测到但随后断开连接
【发布时间】:2013-05-04 20:26:27
【问题描述】:

Device Manager 中检测到 Arduino Leonardo,但随后断开连接。

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

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

注意:几周前它运行良好。我正在使用 Windows 7。

【问题讨论】:

    标签: arduino


    【解决方案1】:

    这看起来像是 Arduino Leonardo 的软重置问题,通常当您连接 Arduino Leonardo 时,它会出现在设备管理器中,如 Ard...bootloader (COMX),持续几秒钟,然后是 Arduino Leonardo出现在不同的 COM 端口上。

    我知道,在你的情况下,之后它就会消失。 尝试在 Arduino IDE 中选择该端口,然后您必须尝试加载一些草图,例如 blink.ino。同时按下重置按钮,然后在开始上传草图时,松开重置按钮。这对我有用。

    【讨论】:

    • 只是为了补充这个答案,我点击 Upload 并等到 compiling 完成,只要它说 uploading 我点击了 leonardo 上的重置按钮,并成功地将闪烁草图上传到了我的板上。既然电路板上有一个很好的草图,它就会正确显示在我的 COM 端口列表中。
    【解决方案2】:

    我遇到了完全相同的问题。按下重置后,我的 Arduino Micro 第一次被正常检测到。这是我的/var/log/syslog 的相应摘录(不包括时间戳等):

    usb 6-1: new full-speed USB device number 56 using uhci_hcd
    usb 6-1: New USB device found, idVendor=2341, idProduct=0037
    usb 6-1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
    usb 6-1: Product: Arduino Micro
    usb 6-1: Manufacturer: Arduino LLC
    cdc_acm 6-1:1.0: ttyACM3: USB ACM device
    

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

    usb 6-1: USB disconnect, device number 56
    

    经过长时间的搜索,我发现了如何从这种致命的情况中恢复过来:

    • 通过 USB 数据线连接您的 Arduino。
    • 打开 Arduino IDE 并加载“Blink”示例。
    • 打开一个shell并输入:tail -f /var/log/syslog。这是为了观察 Arduino 与哪个/dev/tty 端口相关联。
    • 现在你必须快点:重置 Arduino,查看它获得的 /dev/tty 端口,然后在 IDE 中的菜单 ToolsSerial Port 下选择该端口。您必须在 Arduino 再次断开连接之前执行此操作,否则将无法访问正确的菜单点。在获得它之前,您可能需要一两次尝试。那是最困难的部分。
    • 在 Arduino 上再次按“重置”,然后立即按 Arduino IDE 中的 上传 按钮。
    • 您的 Arduino 应该会在上传后不久启动闪烁程序并且已“修复”。

    经过更多调查后,我找到了整个痛苦的原因:在一些被遗忘的文件的一些被遗忘的源代码中,有一个 main() 函数(我在几周前为 Linux/g++ 下的一些测试编写了那个函数)。编译器现在更喜欢使用该 main() 而不是 IDE 环境中的标准 main()。

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

    【讨论】:

    • 此解决方案完美运行。转载一两次。谢谢。虽然,我的代码中没有 main(),所以我仍然不确定它为什么会导致这样的问题。
    • 同样的问题(在 linux 上),我必须先禁用 ModemManager.service (sudo systemctl stop ModemManager.service),然后你的方法才有效。
    【解决方案3】:

    确保没有任何东西(而不是 USB 电缆)连接到 Arduino,然后重试。如果问题仍然存在,请尝试更换电缆并在不同的 USB 端口上进行测试。

    也尝试阅读帖子Windows Not recognizing Uno。如果您可以在设备管理器中看到 Arduino 几秒钟,请尝试重新安装驱动程序。驱动程序位于 Arduino IDE 文件夹中。

    【讨论】:

    • 我尝试了不同的 USB 数据线,重新安装了驱动程序。仍然无法正常工作
    • 您是否在另一台计算机上测试过。这可以帮助您了解问题是 PC 还是 Arduino。
    • 我在另一台电脑上测试过。结果相同。我也烧掉了引导加载程序。但是,一旦我尝试上传驱动程序就会被卸载。
    • 所以,很明显你使用的 Arduino 有问题。就是这样。你的 Arduino 有问题。
    【解决方案4】:

    你可能知道那些ICSP“神秘”别针。

    拿一个 Arduino Uno 并将所需的“Arduino as Programmer”代码添加到其中,将 Leonardo 连接到 Arduino Uno,现在您可以对 Leonardo 进行编程 - 但您会破坏 Leonardo 的引导加载程序。

    在 IDE 中,转到“文件”,然后将鼠标移动到“使用 Arduino 作为程序员上传”,尽情享受吧。如果您采用这种方法,请不要购买LilyPad USB,因为它具有与 Leonardo 完全相同的 32U4 芯片并且没有 ICSP 引脚。也就是说,除非您可以将引脚焊接到六个孔中!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多