libusb如何与USB设备通信

繁华落尽空 2014-06-03 09:22:07
在网上找了很多例子,都是usb控制传输的,控制传输都是用于枚举的。我现在要与USB设备进行数据交互,应该要确定USB设备地址和端口号吧,但是这些东西在libusb的lib没有找到,谁有libusb做过主机与usb设备进行数据交互的例子,给个呗,分全散。
...全文
6734 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huyue2576 2016-10-23
  • 打赏
  • 举报
回复
struct usb_bus *bus; struct usb_device *dev; usb_init(); /* initialize the library */ usb_find_busses(); /* find all busses */ usb_find_devices(); /* find all connected devices */ for (bus =usb_busses; bus; bus = bus->next) { ListBox1->Items->Append( bus->dirname); for (dev = bus->devices; dev; dev = dev->next) { ListBox1->Items->Append("Serial : " + IntToHex(dev->descriptor.idVendor,4)); } } 结果只枚举到一个设备?什么原因
夏学弘毅 2015-01-23
  • 打赏
  • 举报
回复
楼主 搞的怎么样了 我也在使用libusb-1.0.9 在win7 上, 但是发现使用libusb_open 调用的时候 返回-12 /** Operation not supported or unimplemented on this platform */ LIBUSB_ERROR_NOT_SUPPORTED = -12, 楼主用的是libusb-1 吗 libusb-1.0 在win 平台可以正常使用吗???
繁华落尽空 2014-12-12
  • 打赏
  • 举报
回复
引用 10 楼 whoami7788 的回复:
哥们,你的问题解决了吗?我现在也有同样的疑问,能指导下吗?
搞了几次,USB都接收不到数据,没搞了,哪天心血来潮时再弄下
whoami7788 2014-11-17
  • 打赏
  • 举报
回复
哥们,你的问题解决了吗?我现在也有同样的疑问,能指导下吗?
wushuang443 2014-07-30
  • 打赏
  • 举报
回复
引用 7 楼 ccFelix 的回复:
[quote=引用 3 楼 tnijerry 的回复:]
int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size,int timeout); int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout); 这是读写,首先要枚举设备,然后开线程读写数据就OK了[/quote]大侠们,我今天也开始学libusb,郁闷的是我在用这个官方给的例子也编译的时候出错,不知道各位有demo给个么,非常感谢。
Kanson 2014-07-28
  • 打赏
  • 举报
回复
http://www.doc88.com/p-994529924867.html 看下这个文档把
Kanson 2014-07-28
  • 打赏
  • 举报
回复
引用 3 楼 tnijerry 的回复:
int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size,int timeout); int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout); 这是读写,首先要枚举设备,然后开线程读写数据就OK了
zhaoke7891 2014-07-28
  • 打赏
  • 举报
回复
我也在做相关的项目,各位大神给点提示吧。
繁华落尽空 2014-07-26
  • 打赏
  • 举报
回复
引用 4 楼 chinayu2007 的回复:
USB设备读写和串口设备差不多,只不过先要枚举设备,查找到相应的PID,VID,然后用CreateFile函数创建设备,用文件读写API函数和设备交互
chinayu2007能提供个例子做参考吗?
chinayu2007 2014-07-25
  • 打赏
  • 举报
回复
USB设备读写和串口设备差不多,只不过先要枚举设备,查找到相应的PID,VID,然后用CreateFile函数创建设备,用文件读写API函数和设备交互
繁华落尽空 2014-07-25
  • 打赏
  • 举报
回复
引用 2 楼 ccFelix 的回复:
我做过,直接调库函数就是了 很简单
应该是要用到下面3个函数,usb_control_msg倒是可以正常使用,usb_bulk_write和usb_bulk_read搞过好多次,一直都没有成功过 ccFelix给点经验吧,你好像经常搞USB通信啊,上次我的帖子也是你回的 int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, int value, int index, char *bytes, int size, int timeout); int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size,int timeout); int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout)
Kanson 2014-07-23
  • 打赏
  • 举报
回复
我做过,直接调库函数就是了 很简单
费费1 2014-07-22
  • 打赏
  • 举报
回复
引用 楼主 tnijerry 的回复:
在网上找了很多例子,都是usb控制传输的,控制传输都是用于枚举的。我现在要与USB设备进行数据交互,应该要确定USB设备地址和端口号吧,但是这些东西在libusb的lib没有找到,谁有libusb做过主机与usb设备进行数据交互的例子,给个呗,分全散。
libusb-1.0中有接口,libusb-win32中没有

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧