首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows 7上使用C++读取USB数据

在Windows 7上使用C++读取USB数据
EN

Stack Overflow用户
提问于 2013-07-11 17:58:55
回答 2查看 7.6K关注 0票数 4

我正在尝试读取来自Trimble SPS-361 GPS接收器的输出,该接收器通过USB连接到Windows7计算机,最好使用C++ (最好是)或Java。我知道人们也问过类似的问题,但我似乎找不到我要找的东西。听起来libusb是我最好的选择,是真的吗?如果是这样的话,什么是好的教程/指南/示例代码?

听起来我需要安装/编写某种特定于设备的驱动程序,然后我可以通过libusb使用C++读取设备上的数据。这是从USB读取数据的一般过程,还是我感到困惑?

总结一下我认为需要的东西(我知道我到处都是):

  1. 一般情况下如何与USB通信的说明/教程
  2. 更具体的教程/指南/示例代码,说明如何在Windows 7上读取USB设备上的数据
  3. libusb到底是什么,它是我要找的吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-11 19:56:01

好吧,如果你想要设备上的原始数据,你可以在USB设备列表中找到它,然后像文件一样逐字读取它。

从获取所有设备开始:

代码语言:javascript
复制
HDEVINFO hDevInfo = SetupDiGetClassDevs( &HIDWatch::GUID_DEVINTERFACE_HID, 0, 0, DIGCF_DEVICEINTERFACE );

枚举每一个,直到找到要查找的内容为止:

代码语言:javascript
复制
SetupDiEnumInterfaceDevice( hDevInfo, NULL, &HIDWatch::GUID_DEVINTERFACE_HID, index++, &InterfaceInfoData )

通过SetupDiGetInterfaceDeviceDetail获取设备细节..。然后通过CreateFile通过GENERIC_READ访问打开设备路径的文件句柄.运行DeviceIoControl以获得使用IOCTL_HID_GET_PRODUCT_STRING的产品字符串。如果不是您的设备,请关闭文件CloseHandle。如果它是您的,请坐在一个循环中(最好是在线程上)执行ReadFile,您将从设备中获得原始记录。

这应该能让你..。

票数 5
EN

Stack Overflow用户

发布于 2014-01-27 02:19:54

通常,在Windows中,GPS传感器作为串口公开。没有必要做特定的USB处理。

只需通过CreateFile/ReadFile进行串行通信,并解析接收到的GPS NMEA数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17600267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档