完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目前M480的官方USBD例程中没有WCID WINUSB相关的例程,但可以参考以下步骤自行实现:
1. 在USBD_Config.h头文件中添加宏定义: #define USBD_SUPPORT_WCID 1 2. 在USBD_Config.h头文件中定义WCID接口的VID和PID: #define USBD_WCID_VENDOR_ID 0x1234 #define USBD_WCID_PRODUCT_ID 0x5678 3. 在USBD_ClassRequest()函数中添加处理WCID接口的代码,如下所示: case USB_REQ_GET_DESCRIPTOR: if (pSetup->wValue == 0x22EE0100) { USBD_memcpy(pbuf, WCID_DESCRIPTOR_DATA, WCID_DESCRIPTOR_SIZE); len = WCID_DESCRIPTOR_SIZE; } break; 4.在USBD_DataIn()函数中添加处理WCID接口的代码(例程中为HID接口),如下所示: case HID_IN_REPORT: if (hdev->hid_tx_busy == 0) { /* Trigger HID IN interrupt */ hdev->hid_tx_busy = 1; USBD_SET_PAYLOAD_LEN(ep->epAddr, ep->MaxPacketSize); } break; 5. 在WCID_DESCRIPTOR_DATA数组中定义WCID描述符,用于向主机发送WCID信息,如下所示: __align(4) const uint8_t WCID_DESCRIPTOR_DATA[] = { 0x40,0x00,0x01,0x00, //WCID descriptor length 0x00,0x01, //bcdVersion 0x04, //bClass 0x01, //bSubClass 0x00, //bProtocol 0x00, //bNumConfigurations 0x40,0x00, //Reserved }; 需要注意的是,实现WCID WINUSB接口需要对USB设备描述符、配置描述符、接口描述符等进行相应的修改。可以参考官方的USB规范进行处理。 |
|
|
|
只有小组成员才能发言,加入小组>>
891 浏览 0 评论
1202 浏览 1 评论
2579 浏览 5 评论
2914 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2776 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1249浏览 3评论
227浏览 2评论
502浏览 2评论
410浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
489浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-3 14:18 , Processed in 0.745985 second(s), Total 44, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号