1.前言
客户反馈在运行STM32C071固件库Applications/USBX/Ux_Device_HID_Standalone例程时,反馈上位机不能向MCU通过EP OUT1发送数据,每当发数据就STALL。设备描述符正常,端口也是正常状态,MCU可以通过EP IN数据给上位机,如果不添加EP OUT1,通过EP OUT0发数据也不会STALL。

2. 问题调研与复现
以NUCLEO-H563ZI的板子为例,基于此板子上进行了USBx的跟踪和调试。发现一个标准的USB-HID设备及USB_HID_Custom(用户自定义HID设备),是只有IN端点,没有OUT属性的端点,基于USBx的协议栈创建的USB HID应用默认是不支持OUT端点。如果要进行HID的输入输出,需要使能USBx支持HID类OUT端点传输。
3.实现USBx HID类应用,支持OUT传输的步骤
1) 由于本文的重点是在USBx内添加OUT端点传输,为方便起见将固件库里面的例程NUCLEO-H563ZI\Applications\USBX\Ux_Device_HID_Standalone拷贝,将该文件夹和.IOC文件重新命名为Ux_Device_HID_Test,如下图所示。












4. 总结
本文旨在实现 USBx HID Custom类的OUT端点通信,限于篇幅原因,读者可以下载本文档的附件工程,并详细阅读源码细节和已有实际调试,以理解USBx协议栈的通信流程,从而高效的开发出自己的USB应用。
来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。