USB CDC-ACM 接口
USB CDC-ACM(通信设备类 - 抽象控制模型)组件使受支持的设备能够作为 USB 虚拟串行端口运行。连接到主机计算机时,微控制器将显示为一个或 多个串行/COM 端口,允许与运行在微控制器上的应用程序进行串行通信。
要在配置中使用此组件,你的设备配置中必须包含 Tinyusb。
当前支持以下 ESP32 微控制器变体:
- ESP32-H4
- ESP32-P4
- ESP32-S2
- ESP32-S3
- ESP32-S31
# 示例最小配置条目usb_cdc_acm:- rx_buffer_size (可选, int): USB 接收缓冲区大小(字节)。范围:1-65535。默认为
256。 - tx_buffer_size (可选, int): USB 发送缓冲区大小(字节)。范围:1-65535。默认为
256。 - interfaces (可选, list): CDC-ACM 接口实例列表。最多支持两个;至少需要 一个。默认为单个项目列表,仅定义单个接口。
接口配置变量
Section titled “接口配置变量”interfaces 列表中的每个接口包含以下内容:
- id (可选, ID): 用于此接口实例的 ID。这 用于在其他组件、平台或 lambda 中引用该接口。
USB CDC-ACM 组件支持在单个设备上最多同时运行两个虚拟串行端口接口。这 允许你通过单个物理 USB 连接创建多个独立的通信通道。
# 使用两个接口的配置示例usb_cdc_acm: interfaces: - id: cdc_acm_1 - id: cdc_acm_2在此配置中,设备将作为两个独立的串行/COM 端口显示给主机计算机。每个接口 独立工作,拥有自己的数据缓冲区。
缓冲区大小注意事项
Section titled “缓冲区大小注意事项”缓冲区大小决定了 USB 传输期间可以临时存储的数据量:
- 小缓冲区(256 字节,默认):适合低带宽应用,并节省 RAM
- 大缓冲区(512-1024 字节):推荐用于高吞吐量应用或处理数据突发
如果你遇到数据丢失或需要处理更大的数据包而不频繁轮询,请增加缓冲区大小。