完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在usb_descriptor.h中有函数声明: 函数声明.PNG (25.1 KiB) Viewed 3594 times
但是并没有对应的函数定义。 请问如何根据index、langid来得到描述符字符串? 比如我的USB设备为: ---------------------- Device Descriptor ---------------------- bLength : 0x12 (18 bytes) bDescriptorType : 0x01 (Device Descriptor) bcdUSB : 0x200 (USB Version 2.0) -> but device is Full-Speed only bDeviceClass : 0x00 (defined by the interface descriptors) bDeviceSubClass : 0x00 bDeviceProtocol : 0x00 bMaxPacketSize0 : 0x08 (8 bytes) idVendor : 0x05E0 (Zebra Technologies) idProduct : 0x1200 bcdDevice : 0x0201 iManufacturer : 0x01 (String Descriptor 1) Language 0x0409 : "ᄅSymbol Technologies, Inc, 2002" iProduct : 0x02 (String Descriptor 2) Language 0x0409 : "Symbol Bar Code Scanner" iSerialNumber : 0x03 (String Descriptor 3) Language 0x0409 : "S/N:C8820020FD115541B46BDB1CBA3D5E16 Rev:NBRPPAAQ3" bNumConfigurations : 0x01 (1 Configuration) Data (HexDump) : 12 01 00 02 00 00 00 08 E0 05 00 12 01 02 01 02 ................ 03 01 .. 想要获得"Symbol Bar Code Scanner"这个字符串。 尝试增加如下打印: 尝试打印.PNG (54.52 KiB) Viewed 3594 times 得到乱码: 得到乱码.PNG (52.01 KiB) Viewed 3594 times |
|
相关推荐
1个回答
|
|
要获取USB设备的描述字符串,您需要遵循以下步骤:
1. 初始化USB主机控制器:首先,您需要初始化USB主机控制器,以便它可以与USB设备进行通信。这通常涉及到配置硬件和设置必要的寄存器。 2. 枚举USB设备:在初始化主机控制器之后,您需要枚举连接到主机的USB设备。这包括获取设备的地址、速度和类代码等信息。 3. 获取设备描述符:在枚举设备之后,您可以使用USB主机控制器的函数来获取设备的描述符。描述符包含了设备的详细信息,例如制造商、产品ID等。 4. 解析描述字符串:在获取设备描述符之后,您可以解析描述字符串。描述字符串通常以Unicode编码存储,因此您需要将其转换为可读的格式。 在`usb_descriptor.h`头文件中,您可能会找到类似于以下的函数声明,用于获取USB设备的描述字符串: ```c uint8_t USB_GetDescriptor(USB_Setup_TypeDef *pSetup, uint8_t *pDesc, uint16_t *pLen); ``` 这个函数通常接受以下参数: - `pSetup`:指向USB设置请求结构体的指针,其中包含了请求类型、请求号和语言ID等信息。 - `pDesc`:指向用于存储描述字符串的缓冲区的指针。 - `pLen`:指向一个变量的指针,该变量用于存储返回的描述字符串的长度。 要使用这个函数,您需要按照以下步骤操作: 1. 准备一个`USB_Setup_TypeDef`结构体,设置请求类型为`USB_REQ_GET_DESCRIPTOR`,请求号为`USB_REQ_GET_DESCRIPTOR`,以及语言ID。 2. 准备一个缓冲区,用于存储返回的描述字符串。 3. 调用`USB_GetDescriptor`函数,传入上述参数。 4. 检查函数返回值,如果成功,从缓冲区中获取描述字符串。 5. 将描述字符串从Unicode编码转换为可读的格式(例如UTF-8或ASCII)。 请注意,具体的函数名称和参数可能会因您使用的USB主机控制器和库而有所不同。因此,请参考您所使用的库的文档以获取详细信息。 |
|
|
|
只有小组成员才能发言,加入小组>>
988 浏览 1 评论
553浏览 6评论
463浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
421浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 23:07 , Processed in 0.796962 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号