gpt4 book ai didi

windows - 从 Windows 控制 USB

转载 作者:可可西里 更新时间:2023-11-01 10:40:23 24 4
gpt4 key购买 nike

我知道这可能不是最简单的事情,但我正在尝试使用 USB 连接微 Controller 和 PC。我不想使用微 Controller 内部的USART或USB转RS232,它的项目旨在帮助我理解各种原理。

因此,从微 Controller 端完成通信是小菜一碟 - 我的意思是,当我知道他的协议(protocol)时,在 Micro 上实现它相对容易,因为我可以直接控制一切,甚至是精确的计时。

但是PC却不是这样。我不太熟悉 Windows 处理连接设备的概念。在我之前的一个问题中,我询问了 Windows 如何通过驱动程序与设备一起工作。我了解到,对于 Windows 的内部使用,驱动程序必须具有操作系统可用的一些默认功能集。我的意思是,当 OS 想要访问 HDD 时,它会调用 HDD 驱动程序(可能是 OS 内部的),并带有特定的“问题”,这意味着必须编写 HDD 驱动程序才能与 Windows 配合使用,以在适当的情况下具有写入功能操作系统调用的地方。类似的东西是用于 GPU,甚至是 DirectX,我的意思是 DirectX 必须调用驱动程序的特定功能,因此必须编写驱动程序才能与 DX 一起工作。我知道,WinAPI 中的许多函数都可以独立运行,但即使是“简单”窗口也必须最终写入帧缓冲区,使用 MMIO 来处理驱动程序指定的地址。我说得对吗?

因此,我希望 Windows 具有内部功能,即 WinAPI 的一部分,旨在与某些常用的东西一起工作。调用制造商设计的驱动程序。但这似乎并不完全正确,因为 Windows 无法通过并行端口进行通信。我的意思是,WinAPI 中没有与串行端口一起工作的函数,但是有与 HDD、GPU 等一起工作的函数。

但是现在到了我非常迷茫的部分。因此,我认为 Windows 必须具有一些内置功能才能通过 USB 进行通信,因为例如它可以处理 USB 闪存。那么,是否有任何 WinAPI 函数旨在让用户通过该函数操作 USB,或者当我想自己使用 USB 时,我是否必须自己调用所需的 USB 驱动程序函数?因为您需要发送到 USB Controller 的只是设备地址和信息,对吗?我的意思是,我不必编写任何新驱动程序,对吗?有的话直接调用WinAPI函数,或者直接调用原来的USB驱动。这有什么意义吗?

最佳答案

为了让您的生活更轻松,并避免编写自己的驱动程序,请尝试使用 HID (人机接口(interface)设备)USB 之上的 API。虽然它说的是“人机界面”,但它实际上并不一定要用于人类控制的设备。优点是现代操作系统已经带有 HID 驱动程序,您可以使用示例代码,例如您可以找到的 here开始。许多微 Controller 制造商为协议(protocol)的嵌入提供了合适的代码。

因为操作系统已经理解 HID,如果您使用 HID 接口(interface)构 build 备,您会发现您不仅可以从任何操作系统读取它,您还会发现许多应用程序已经可以与您的设备通信,如果它的通信仅限于 HID 的一个足够小的子集。 (例如,我为音乐应用程序构建了一个输入设备,但令人惊讶的是我发现我可以直接将它插入我们在工作中使用的 3D 动画应用程序中,在不同的操作系统上运行,并且无需编写任何代码即可立即运行额外的代码行!)

关于windows - 从 Windows 控制 USB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com