#usb-hid #usb-device #hid #usb #keyboard #mouse #usb-host

no-std usbd-human-interface-device

适用于usb-device的内置嵌入式USB HID库。包括具体的键盘(启动和NKRO)、鼠标、游戏手柄和消费控制实现,以及支持构建自己的HID类。

15次发布

0.5.0 2024年4月13日
0.4.5 2023年12月29日
0.4.4 2023年11月17日
0.4.3 2023年7月14日
0.2.1 2022年6月12日

嵌入式开发 中排名 105

Download history 6/week @ 2024-04-29 3/week @ 2024-05-13 18/week @ 2024-05-20 28/week @ 2024-05-27 28/week @ 2024-06-03 12/week @ 2024-06-10 13/week @ 2024-06-17 8/week @ 2024-06-24 45/week @ 2024-07-01 124/week @ 2024-07-08 15/week @ 2024-07-15 17/week @ 2024-07-22 62/week @ 2024-07-29 10/week @ 2024-08-05 30/week @ 2024-08-12

每月下载量 122
owotility 中使用

MIT 许可证

175KB
4.5K SLoC

Library build Example build Security audit

crates.io docs.rs

适用于usb-device的内置嵌入式USB HID库。包括键盘(启动和NKRO)、鼠标、游戏手柄和消费控制实现,以及支持构建自己的HID类。

在RP2040上进行了测试,但应适用于usb-device支持的所有平台。

使用此库创建的设备应与任何USB主机兼容。已在Windows、Linux、MacOS和Android上进行测试。

注意:支持HID空闲的管理接口,如NKROBootKeyboardInterfaceBootKeyboardInterface,需要每1毫秒调用一次UsbHidClass::tick()方法。

特性

  • 键盘 - 兼容启动的键盘,兼容启动的NKRO(N键滚动)键盘
  • 鼠标 - 兼容启动的鼠标,兼容启动的鼠标带有滚动轮和缩放功能
  • 游戏手柄 - 具有八个按钮的两个轴游戏手柄
  • 消费控制 - 媒体控制设备,通用消费控制设备
  • 为消费、桌面、游戏、键盘、LED、模拟和电话HID使用页面提供枚举
  • 支持多接口设备
  • 支持HID空闲和HID协议更改
  • 支持单报告和多报告接口
  • RTIC兼容

示例

请参阅示例,了解如何在RP2040(树莓派Pico)上使用此库。

路线图

  • 对其他微控制器(如SAM D2x系列)的示例和测试。
  • 支持主机设备远程唤醒

联系方式

https://github.com/dlkj/usbd-human-interface-device/issues

许可

在MIT许可证下分发,请参阅LICENSE

贡献

欢迎通过pull requests进行贡献

致谢

此库受到现有的rust USB库以及以下USB信息来源的启发

依赖项

~3.5MB
~78K SLoC