【发布时间】:2017-01-15 08:09:16
【问题描述】:
首先,我对 USB 功能的经验非常少,更不用说编写驱动程序了;本质上是想让这个项目成为一种学习体验。
我的设置由 SparkFun Pro Micro 板和一台 Windows 机器组成。我有一个电位器连接到 Pro Micro,我的最终目标是将电位器的值发送到主机并使用该值来更改系统音量等...
Arduino 库附带了一个 Serial 库,我可以使用它通过 USB 发送内容。我目前有一个工作的 Arduino 程序,每 1 秒发送 1 个字节,Windows 机器上的 C 程序“连接”到 COM 端口并读取通过的字节(这部分我工作正常)。
问题在于,当 Pro Micro 连接到计算机时,它会出现在随机选择的 COM 端口上,我认为您无法分辨哪些 COM 端口容纳了哪个设备(不确定这一点)。
我的最终目标是当 Pro Micro 连接到 PC 时,主机程序应该自动识别 Pro Micro 并开始处理来自它的数据。将其设置为 HID 设备并将其作为我自己的自定义设备显示在设备管理器中是我感兴趣的事情,尤其是在学习体验方面,但我觉得这可能会使事情变得过于复杂。
谁能指出我应该做什么/研究什么的正确方向?
【问题讨论】:
-
您能否轮询所有 COM 端口并找出响应为 Pro Micro 的端口?我对板子不熟悉,但板子通常有一个协议可以识别它们。
-
我不认为这是作弊。这正是操作系统在启动时定位所有连接设备的方式。
-
不,不是虚拟消息,而是触发董事会以自己的身份进行响应的消息。您必须阅读开发板程序员手册才能了解要发送的内容。
-
如果能用COM,就用它; USB 只是“载体”。
-
fwiw,我可以将某些“芯片”分配给不同的 com 端口。例如,当我的 arduinos 出现在 com4 中时,我的 cp2102 板显示在 com10 下。我所做的只是更改控制面板串行部分中的端口...
标签: c windows arduino usb driver