完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
如题,我连接了两个相同的板子,芯片是CH549,设置成USB HID设备,由于是相同的PID和VID,所以,我的上位机没有办法区分是哪个板,尝试读芯片的序列号,但这个芯片序列号为“00000000”,请问有什么办法吗?
看到芯片例程里有设置产品信息的地方,用另一个USB工具则可以通个这个产品信息来找到设备,但不知这个是怎样实现的 |
|
相关推荐
5个回答
|
|
|
通常厂商具备自己的VID,PID可以自行定义。所以PID、VID当然可以进行修改(不冲突的情况下),用来区分不同设备(不过通常没必要)。
实际上,我们开发USB设备,希望来传输一些自定义数据,为了合理,多半还会加上一些简单的命令,完全可以通过数据通道上传一些特定数据,用来指示“序列号”。 |
|
|
|
|
|
我是想在发命令之前就需要确定是和哪个设备通信的,所以在命令中加上特定数据应该行不通,还有其它的方法吗?谢谢~
|
|
|
|
|
|
参考hidapi库,获取hid_device_info结构体,这部分不难从网络中获取到信息。
|
|
|
|
|
|
我现在用的HID库是可以获取芯片的序列号(STM32的芯片厂家有写唯一的序列号,可以通过这个来区分),但沁恒的芯片获取的序列号是"00000000",应该是出厂时没有写入序列号,想通过自定义的Product Info信息来区分,但是还没有找到可以获取这个信息的库,不知有没有大神用过?
|
|
|
|
|
|
你描述的序列必然不可能凭空产生,是通过数据交互获取,可以对现有产品USB抓包,分析是通过什么传输实现的。
另外的USB API库通常都具备获取USB设备字符串的能力,其中厂商信息、设备序列号信息都是可以直接获取的。 设备描述符中包含以下信息,重点byte14、15、16: 具体实现可以自行研究字符串描述符的实现。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
347 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
861 浏览 0 评论
1461 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3417 浏览 2 评论
2822 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1808浏览 1评论
1461浏览 1评论
347浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
863浏览 0评论
467浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:24 , Processed in 2.101385 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1805