Usb 如何添加字符串描述符

Usb 如何添加字符串描述符,usb,stm32,hid,stm32f0,Usb,Stm32,Hid,Stm32f0,我想在我的HID项目中添加一个字符串(以存储有关固件版本的信息)。我读过字符串描述符,我的理解是配置描述符或报告描述符列出了指向字符串的索引。字符串存储在其他地方。然后,主机可以通过“get”string“Descriptor”请求通过索引请求字符串 不过,我对它的实现相当困惑。我一直在浏览STM32F04示例库(可从STM下载或在此处复制),发现: /*USB DFU设备配置描述符*/ const uint8_t usbd_dfu_CfgDesc[USB_dfu_CONFIG_DESC_SIZ

我想在我的HID项目中添加一个字符串(以存储有关固件版本的信息)。我读过字符串描述符,我的理解是配置描述符或报告描述符列出了指向字符串的索引。字符串存储在其他地方。然后,主机可以通过“get”string“Descriptor”请求通过索引请求字符串

不过,我对它的实现相当困惑。我一直在浏览STM32F04示例库(可从STM下载或在此处复制),发现:

/*USB DFU设备配置描述符*/
const uint8_t usbd_dfu_CfgDesc[USB_dfu_CONFIG_DESC_SIZ]=
{
0x09,/*bLength:配置描述符大小*/
USB_配置_描述符_类型,/*b说明类型:配置*/
USB_-DFU_-CONFIG_-DESC_-SIZ,
/*wTotalLength:返回的字节数*/
0x00,
0x01,/*B接口:1接口*/
0x01,/*b配置值:配置值*/
0x02,/*iConfiguration:描述配置的字符串描述符的索引*/
0xC0,/*bmAttributes:总线供电,支持远程唤醒*/
0x32,/*MaxPower 100 mA:此电流用于检测VBU*/
/* 09 */
它在0x02处给出了iConfiguration的索引。然后我搜索了指向0x02或配置字符串的另一个引用的所有文件,但没有找到任何内容。我希望找到某种字符串数组,这些字符串可以通过0x02索引或至少是配置字符串编入索引。示例文件可能不完整,但感觉更像伊利,我只是没有寻找正确的东西


我的问题是,首先是我对字符串描述符如何正确工作的基本假设?如果是这样,字符串通常是如何存储的以及存储在哪里的?任何指向示例实现的链接都会非常有用!

在简要查看您的代码后,它看起来像是响应错误将字符串描述符返回到USB主机的代码“获取描述符”请求位于此处:


由于您基本上是在请求帮助查找其他人编写的程序中的一段代码,您能否提供一个指向您正在查看的代码的链接?当然,很抱歉之前忽略了这一点。此repo复制了我使用的所有示例代码,代码片段专门来自此文件