完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个通过 USB 连接到计算机的产品。我还有一个可以在计算机上运行的测试应用程序。PC 上的测试应用程序可以查找默认的 PID,或者可以键入不同的 PID,如果已连接,应用程序将使用插入的 PID 连接到该设备。我知道我可以在编译时修改 PID,但我只想有一个默认 PID,然后通过 USB 或 UART 命令,告诉设备将其 PID 更改为不同的值,例如从 0x5751 到 0x5800 . 我同意必须重启设备才能切换到新的“存储”PID。
有人发表了另一篇帖子,看起来有人正在尝试做类似的事情,但他们不想重启设备以使新 PID 生效。 设置 PID 的代码包含在 usb_desc.c 和下面的 USBD_FS_DeviceDesc 中。我尝试用一个变量替换常量 USBD_PID_FS,该变量将在启动 USB 之前在引导时从 EEPROM 中读出。
看来我不能用变量替换那个 USBD_PID_FS。 如何最好地在启动时修改此 PID 值? 搜索“initializer element is not constant”导致找到以下页面。 在这个线程中有一个关于 STM32 的注释。我正在使用 STM32 Cube IDE,我相信编译器推荐。见附图。 如果有人对如何更改 PID 和在启动时存储/恢复不同的 PID 有任何建议,我会喜欢任何建议。 或者,如果有人建议如何将多个设备连接到计算机(具有相同的 VID/PID)并让 PC 能够选择 PC 应用程序要与之通信的设备?我没有太多创建 PC 端 USB 应用程序的经验。 谢谢。 |
|
相关推荐
1个回答
|
|
在使用之前替换数组中的该条目。
另请注意,无论 stored_usb_pid 的值如何,它的计算结果都是 0:
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2612 浏览 1 评论
3201 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1775 浏览 1 评论
3600 浏览 6 评论
5979 浏览 21 评论
930浏览 4评论
1307浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
574浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1294浏览 3评论
1349浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 10:20 , Processed in 1.127749 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号