不会c嘎嘎 2024-09-22 04:54 采纳率: 33.3%
浏览 19
已结题

Python使用hid与arduino leonardo被拒绝访问

img


import hid

# 查找 Arduino Leonardo 自定义 HID 设备
devices = hid.enumerate()
device_path = None
for device in devices:
    if device['product_string'] == 'Arduino Leonardo':
        device_path = device['path']
        break

if device_path is not None:
    try:
        with hid.Device(path=device_path) as dev:
            print(f"已连接: {dev.product}")
            while True:
                data = dev.read(64)
                print(f"收到的数据: {data}")
    except hid.HIDException as e:
        print(f"读取失败: {e}")
else:
    print("未找到 Arduino Leonardo 设备")
  • 写回答

3条回答 默认 最新

  • 一轮明月照丘壑 2024-09-22 04:55
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    你的问题是在尝试使用Python的hid库与Arduino Leonardo设备进行通信时遇到了“拒绝访问”的错误。这个错误通常意味着你的程序没有足够的权限来访问指定的设备。这个问题可能有以下几个原因:

    1. 设备可能已经被其他程序占用。确保没有其他程序(如Arduino IDE或其他任何与USB设备交互的程序)正在使用你的Arduino Leonardo设备。如果有,关闭它们并重新尝试。
    2. 你可能没有正确的权限来访问设备。在某些系统中,你可能需要以管理员身份运行你的Python程序或者修改设备的权限设置来让你的程序能够访问它。
    3. 设备可能没有正确地连接到你的电脑或者存在硬件问题。尝试重新连接设备或更换线缆,看看问题是否得到解决。

    此外,你的代码中有一个潜在的问题,即在while True:循环中没有退出条件,这可能会导致你的程序陷入无限循环中。你可能需要添加一个适当的退出条件或者将其包装在一个函数中,并在需要时调用它。

    关于如何解决这个问题,你可以尝试以下步骤:

    1. 确保没有其他程序正在使用你的Arduino设备。
    2. 尝试以管理员权限运行你的Python程序。在Windows上,你可以通过右击Python或你的程序的快捷方式,然后选择"以管理员身份运行"来实现。
    3. 检查你的设备是否正确连接,并尝试更换线缆或重新连接设备。
    4. 如果以上步骤都不能解决问题,你可能需要检查你的hid库和设备是否兼容,或者尝试使用其他库(如pyusb)来与设备进行通信。

    如果问题仍然存在,你可能需要提供更多关于你的设备和你的操作系统的信息,以便更准确地定位问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月29日
  • 创建了问题 9月22日