跳转到内容

USB Host 接口

ESP32-S3 和 ESP32-S2 上的 USB Host 接口用于连接 USB 外设。可以配置多个设备,但同一时间只能连接一个。默认情况下,设备必须直接连接到 ESP32,但可以通过将 enable_hubs 选项设置为 true 来更改此设置。

此组件被 usb_uart 组件使用,允许 ESP32 连接到 USB 串行设备。也可以在此组件中直接配置设备,但这仅用于调试目的。

# 示例配置条目
usb_host:
enable_hubs: true
max_transfer_requests: 32 # 适用于高吞吐量设备,如 115200+ 波特率的 USB UART
devices:
- id: device_0
vid: 0x1725
pid: 0x1234
  • id (可选, ID):此组件使用的 ID。
  • enable_hubs (可选, 布尔值):是否包含集线器支持。默认值为 false
  • max_transfer_requests (可选, 整数):并发 USB 传输请求的最大数量。范围:1-32。默认值为 16。如果您看到”所有 X 个传输槽位在使用中”错误,请为高吞吐量设备(例如 115200+ 波特率的 USB UART)增加此值。
  • devices (可选, 列表):要配置的设备列表。
  • id (可选, ID):分配给设备的 ID。
  • vid (*必需, 整数):设备的供应商 ID。使用 0 作为通配符。
  • pid (*必需, 整数):设备的产品 ID。使用 0 作为通配符。

vidpid 都设置为 0 将匹配任何设备。

如果配置了设备,并且连接了与配置匹配的设备,该设备将连接到 ESP32,并在 DEBUG 级别显示日志条目。如果日志级别设置为 VERBOSE,则将转储设备的配置描述符。设备将保持连接状态,直到断开连接或重置 ESP32。

如果插入的设备与任何配置的设备都不匹配,该设备将被断开连接,并在 DEBUG 级别显示日志条目。