1

以前我使用 Windows 窗体应用程序建立一些 RS232 连接。我使用了已经提供的串口组件(SerialPort),能够相对容易地建立RS232通信。

现在,我想知道在 Winodows Form 应用程序中是否会有类似的东西来建立 USB 通信?

似乎有这个 WinUSB API 提供了与设备的非常低级的接口。但是,我不确定这有多容易?此外,不确定集成到 Windows 窗体应用程序有多容易?!

这种USB接口API会有更简单的版本吗?

我不必坚持使用 Visual Studio。除了 WinUSB 之外,还有其他更标准的 c++ USB API 吗?我想开发一个通过 USB 进行一些通信的 GUI API。如果需要,我可以使用 Python 或其他一些工具(如果它有助于该过程)?

提前致谢。

4

1 回答 1

1

虽然 USB 是串行协议,但不能将 USB 视为串行端口:

这取决于实际设备是什么。例如,手机可能会为 USB 提供多个“端点”,一个是串行端口,可将手机用作调制解调器,一个用作存储设备,允许您将照片和音乐文件传输到/从手机存储中传输,以及作为可以用来拍照的相机设备。所有这些都有不同的行为,需要 USB 驱动程序插件才能使其正常运行 - 这些通常随 Windows 一起提供,您的手机将显示为 COM5:、E: 或“Samsung Galaxy S3 Mini”驱动器和相机在“相机和扫描仪”下。

当然,您可以以编程方式打开所有这些设备,但它是作为它们在 Windows 内部呈现的设备类型完成的(因此您使用串行端口功能或文件功能或相机功能)。

如果您对设备的工作方式有足够的详细信息,您还可以为设备编写设备驱动程序。

但是没有真正的方法可以“打开端口”。USB API 是驱动程序 API,而不是用户模式 ​​API。这是了解 USB 驱动程序的起点:http: //msdn.microsoft.com/en-gb/library/windows/hardware/ff540215%28v=vs.85%29.aspx

有一个WinUSB驱动程序,它允许单个应用程序访问单个设备,假设您知道如何操作该设备。

于 2014-08-10T22:33:26.853 回答