13 个版本

0.3.2 2024 年 3 月 6 日
0.3.1 2023 年 11 月 15 日
0.2.9 2022 年 8 月 2 日
0.2.8 2021 年 3 月 13 日
0.1.0 2018 年 12 月 24 日

#11硬件支持

Download history 9591/week @ 2024-04-12 7945/week @ 2024-04-19 9490/week @ 2024-04-26 6825/week @ 2024-05-03 6160/week @ 2024-05-10 7790/week @ 2024-05-17 9281/week @ 2024-05-24 7757/week @ 2024-05-31 7232/week @ 2024-06-07 7173/week @ 2024-06-14 7148/week @ 2024-06-21 7864/week @ 2024-06-28 6253/week @ 2024-07-05 8178/week @ 2024-07-12 8334/week @ 2024-07-19 6644/week @ 2024-07-26

31,071 每月下载量
用于 218 个包 (108 个直接)

MIT 许可证

150KB
2.5K SLoC

usb-device

Rust 中嵌入式设备的 USB 栈。

UsbDevice 对象表示一个复合 USB 设备,对于应用程序实现者来说是最重要的对象。UsbDevice 结合了多个 UsbClasses(可以是自定义的,也可以是其他包提供的预存在的)和一个 UsbBus 设备驱动程序来实现 USB 设备。

UsbClass 特性可以用来实现 USB 类,如 HID 设备或串行端口。如果所需的函数功能没有由标准类覆盖,实现也可以使用自定义类。

UsbBus 特性旨在由特定设备包实现,为每个设备的 USB 外设提供驱动程序。

硬件驱动程序包

  • atsam4 - atsam4e & atsam4s 微控制器(UDP)的设备驱动程序实现。示例可以在 这里 找到。虽然本包不明确支持,但 atsam3s 和 atsam55g 也可以使用类似的代码库进行支持。

  • atsamd - samd21 & samd51 微控制器的设备驱动程序实现。Adafruit itsybitsy_m4 板的示例可以在 这里 找到。

  • imxrt-usbd - NXP i.MX RT 微控制器的设备驱动程序实现。Teensy 4 等i.MX RT 板的示例与驱动程序一起维护。

  • stm32-usbd - 多个 STM32 微控制器系列的设备驱动程序实现。每个实现 USB 外设的 HAL 包中都可以找到示例。

  • rp2040-hal - Raspberry Pi RP2040 微控制器的设备驱动程序实现。示例可以在各种板子存储库中找到 这里

类存储库

其他

Rust 中 USB 的其他实现

  • Embassy 项目有一个异步 USB 栈,embassy-usb。

依赖项

~1.5MB
~29K SLoC