ST意法半导体
直播中

刘慧

7年用户 1685经验值
私信 关注
[问答]

如何使用stm32u585 mcu上的USBX中间件创建USB复合设备

你好!
我正在尝试使用 STM32u585 mcu 上的 USBX 中间件创建具有 2 个注册类 DFU 和 CDC ACM 的 USB 复合设备。
我在 git 上浏览了这两个例子:
STM32CubeU5/项目/B-U585I-IOT02A/应用程序/USBX/Ux_Device_DFU/
STM32CubeU5/项目/B-U585I-IOT02A/应用程序/USBX/Ux_Device_HID_CDC_ACM/
两个示例在单独运行时均按预期工作。
作为起点,我使用 Ux_Device_DFU 示例并开始将 CDC ACM 部分复制到我的项目中。使用ux_device_stack_class_register函数成功注册了 DFU 和 CDC ACM 设备类。
但是,当调用 HAL_PCD_Start时,只有 DFU 类在 PC 的设备管理器中可见。
我注意到在MX_USB_Device_Init函数中调用了 HAL_PCDEx_SetRxFiFoHAL_PCDEx_SetTxFiFo函数,我不明白应该如何配置以及配置哪些端点。我认为这可能是 CDC ACM 类在设备管理器中不可见的情况。
我希望有人可以帮助我解决这个问题。
一些附加信息:
单片机:STM32U585QIIx
STM32CubeMX版本:6.5.0版
固件包版本:SWM32Cube FW_U5 V1.1.0










回帖(1)

武文嘉

2022-12-7 14:55:03
通过更改设备的 VID 和 PID,可以在设备管理器中显示不同的 USB 设备。我尝试了两种不同的配置:
a)  VID: 1155 PID: 57105 // 在 Ux_Device_DFU 示例中定义
结果:DFU 设备出现,没有复合设备,也没有 CDC_ADC(USB 串行设备)
这是我的设置,这就是 USB 复合设备和 USB 串行设备没有出现的原因。
b)  VID: 1155 PID: 22352 // 在 Ux_Device_HID_CDC_ACM 中定义
结果:USB Composite Device 显示,USB Serial Device 显示,DFU 类无法识别,在设备管理器中的“其他设备”中显示为设备描述:“@Internal Flash /0x0800 ..”
举报

更多回帖

发帖
×
20
完善资料,
赚取积分