要修改CYUSB3065(CX3)在电脑上显示的USB设备名称(默认CX3-UVC),需通过固件代码调整USB描述符中的字符串。以下是具体步骤:
1. 找到字符串描述符定义位置
- 在固件工程中,字符串描述符通常定义在以下文件中:
cyfxuvcdscr.c(或类似命名的文件,如cyfxtx.c)
- 搜索关键词如
iProduct、CX3-UVC,定位到类似以下代码段:
static uint8_t cyfxuvc_strdesc[] = {
// 语言ID(通常是0x0409英语)
0x04, 0x03, 0x09, 0x04,
// 厂商字符串(iManufacturer)
'C', 0x00, 'y', 0x00, 'p', 0x00, 'r', 0x00, 'e', 0x00, 's', 0x00, 's', 0x00,
// 产品字符串(iProduct)
'C', 0x00, 'X', 0x00, '3', 0x00, '-', 0x00, 'U', 0x00, 'V', 0x00, 'C', 0x00,
// 序列号等其他字符串...
};
2. 修改产品名称字符串
- 将
iProduct对应的CX3-UVC替换为自定义名称(如MyDevice),注意使用UTF-16LE编码(每个字符占2字节):
// 修改后的产品字符串(示例)
'M', 0x00, 'y', 0x00, 'D', 0x00, 'e', 0x00, 'v', 0x00, 'i', 0x00, 'c', 0x00, 'e', 0x00,
- 注意:字符串长度需更新。原
CX3-UVC占7字符(14字节),若新名称长度为N字符,需将字符串头部的长度字段更新为2*N + 2(例如7字符→0x10,见下文)。
3. 调整字符串描述符长度
每个字符串描述符的第一个字节表示长度(以字节为单位),第二个字节为描述符类型(0x03表示字符串):
// 原CX3-UVC的描述符(长度0x10 = 16字节)
0x10, 0x03, // 长度和类型
'C',0x00, 'X',0x00, '3',0x00, '-',0x00, 'U',0x00, 'V',0x00, 'C',0x00,
// 修改为MyDevice(假设7字符)
0x10, 0x03, // 7字符 → 7*2 + 2 = 16字节(0x10)
'M',0x00, 'y',0x00, 'D',0x00, 'e',0x00, 'v',0x00, 'i',0x00, 'c',0x00,
4. 验证设备描述符索引
- 在设备描述符中,确保
iProduct字段指向正确的字符串索引(通常无需修改):
const uint8_t cyfxuvc_devdesc[] = {
0x12, 0x01, 0x00, 0x02, 0xEF, 0x02, 0x01, 0x40,
0x48, 0x0B, 0x10, 0x00, 0x00, 0x00, 0x01, 0x02,
0x00, 0x01 // iProduct=0x01(即索引1)
};
5. 重新编译并测试
- 编译固件并烧录到CX3设备。
- 连接电脑后,通过以下方式验证:
- 设备管理器 → 右键设备 → 属性 → 查看“常规”选项卡中的设备名称。
- 使用工具如
USBTreeView或lsusb(Linux)查看详细信息。
6. 注意事项
- 缓存问题:若名称未更新,尝试在设备管理器中卸载设备并勾选“删除驱动程序”,然后重新插拔。
- 字符串长度:总长度不超过255字节(实际建议不超过126字符)。
- 特殊字符:避免使用非ASCII字符,某些系统可能不支持。
通过以上步骤,设备名称应成功更改为自定义名称。如有问题,可检查描述符结构或调试工具输出日志。
|
|
|
2025-5-20 18:14:30
评论
举报
|
|
|
|