You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pico微控制器创建虚拟USB设备求技术指导

使用CircuitPython在Pico上创建自定义虚拟USB设备指南

核心实现流程

  • 确认使用最新稳定版CircuitPython(需支持USB自定义设备/HID功能)
  • 配置USB核心参数(VID/PID、厂商/产品信息等)
  • 编写对应功能的代码(HID类设备或自定义协议设备)
  • 上传代码到Pico,主机端识别并测试

VID/PID及关键参数设置

  • VID(厂商ID):非商用项目可使用微软预留的测试VID 0x1209,配套测试PID范围为0x0000-0xFFFE;避免使用已注册的官方VID(如树莓派的0x2E8A)
  • 参数配置方式:在CircuitPython中通过usb_hid模块的自定义描述符字典设置,示例代码:
import usb_hid

# 自定义USB设备参数
CUSTOM_USB_CONFIG = {
    "vid": 0x1209,
    "pid": 0xAAAA,
    "manufacturer": "Your Lab",
    "product": "Pico Custom USB Device",
    "usage_page": 0x01,  # HID通用桌面设备页
    "usage": 0x06        # 键盘设备类型
}

# 替换默认USB配置
usb_hid.enable((usb_hid.Device.KEYBOARD,), custom_descriptor=CUSTOM_USB_CONFIG)
  • 非HID类自定义设备:需要手动编写完整的USB设备描述符、配置描述符、接口描述符字节码,需熟悉USB协议规范。

自定义HID设备实现示例

以下代码实现一个自定义HID键盘设备,可发送按键信号:

import board
import usb_hid
from adafruit_hid.keycode import Keycode
from adafruit_hid.keyboard import Keyboard
import time

# 自定义HID报告描述符(定义设备功能与数据格式)
CUSTOM_REPORT_DESC = b"\x05\x01\x09\x06\xA1\x01\x05\x07\x19\xE0\x29\xE7\x15\x00\x25\x01\x75\x01\x95\x08\x81\x02\x95\x01\x75\x08\x81\x03\x95\x05\x75\x01\x05\x08\x19\x01\x29\x05\x91\x02\x95\x01\x75\x03\x91\x03\x95\x06\x75\x08\x15\x00\x26\xFF\x00\x05\x07\x19\x00\x29\xFF\x81\x00\xC0"

# 定义自定义USB设备
CUSTOM_DEVICE = usb_hid.Device(
    report_descriptor=CUSTOM_REPORT_DESC,
    usage_page=0x01,
    usage=0x06,
    report_ids=(0,),
    in_report_lengths=(8,),
    out_report_lengths=(1,),
    vid=0x1209,
    pid=0xAAAA,
    manufacturer="Custom Maker",
    product="Pico Custom Keyboard"
)

# 启用自定义设备
usb_hid.enable((CUSTOM_DEVICE,))

keyboard = Keyboard(usb_hid.devices)

# 测试按键发送
while True:
    keyboard.send(Keycode.A)
    time.sleep(2)
    keyboard.release_all()
    time.sleep(1)

提示:HID报告描述符可通过HID Descriptor Tool工具生成,确保字节码符合USB HID规范。

常见问题排查

  • 主机无法识别设备:检查CircuitPython版本兼容性,确认VID/PID未被占用,重启Pico并重传代码
  • 参数设置无效:验证自定义描述符格式,特别是usage_page、usage需匹配设备类型,报告描述符字节码不能出错
  • 文档缺失:可查看CircuitPython源码中usb_hid模块的实现逻辑,重点关注设备描述符的构造过程

内容的提问来源于stack exchange,提问作者StackyOvery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:47:13