主要是在前一篇的基础上,学习libusb-win32的API使用。程序很简单,就是打印指定USB设备的设备描述符(当然其他描述符也是可以的)。

  1. #include "testlibusb.h"
  2.  
  3. #define MY_VID 0x5345
  4. #define MY_PID 0x1234
  5.  
  6. USB::USB()
  7. {
  8. usb_init(); /* initialize the library */
  9. //usb_set_debug(255);
  10. usb_find_busses(); /* find all busses */
  11. usb_find_devices(); /* find all connected devices */
  12.  
  13. if (!(udev = open_dev())) {
  14. qDebug("error opening device: %s", usb_strerror());
  15. exit();
  16. } else
  17. qDebug("open success: device %04X:%04X opened", MY_VID, MY_PID);
  18.  
  19. printf_device_descriptor(&dev->descriptor);
  20. usb_close(udev);
  21.  
  22. //my_usb_get_device_list();
  23. resize(, );
  24. }
  25.  
  26. usb_dev_handle *USB::open_dev(void)
  27. {
  28. struct usb_bus *bus;
  29. //struct usb_device *dev;
  30.  
  31. for(bus = usb_get_busses(); bus; bus = bus->next) {
  32. for(dev = bus->devices; dev; dev = dev->next) {
  33. if((dev->descriptor.idVendor == MY_VID) && (dev->descriptor.idProduct == MY_PID)) {
  34. return usb_open(dev);
  35. }
  36. }
  37. }
  38. return ;
  39. }
  40.  
  41. void USB::printf_device_descriptor(usb_device_descriptor *desc)
  42. {
  43. qDebug("bLength: %u", desc->bLength);
  44. qDebug("bDescriptorType: %02Xh", desc->bDescriptorType);
  45. qDebug("bcdUSB: %04Xh", desc->bcdUSB);
  46. qDebug("bDeviceClass: %02Xh", desc->bDeviceClass);
  47. qDebug("bDeviceSubClass: %02Xh", desc->bDeviceSubClass);
  48. qDebug("bDeviceProtocol: %02Xh", desc->bDeviceProtocol);
  49. qDebug("bMaxPacketSize0: %02Xh", desc->bMaxPacketSize0);
  50. qDebug("idVendor: %04Xh", desc->idVendor);
  51. qDebug("idProduct: %04Xh", desc->idProduct);
  52. qDebug("bcdDevice: %04Xh", desc->bcdDevice);
  53. qDebug("iManufacturer: %u", desc->iManufacturer);
  54. qDebug("iProduct: %u", desc->iProduct);
  55. qDebug("iSerialNumber: %u", desc->iSerialNumber);
  56. qDebug("bNumConfigurations: %u", desc->bNumConfigurations);
  57. }

这里我指定的USB设备是Tiny6410开发板。运行效果如下:

下一步就是上位机与开发板进行数据互传。

Qt下libusb-win32的使用(一)打印设备描述符的更多相关文章

  1. Qt下libusb-win32的使用(转)

    源:Qt下libusb-win32的使用(一)打印设备描述符 主要是在前一篇的基础上,学习libusb-win32的API使用.程序很简单,就是打印指定USB设备的设备描述符(当然其他描述符也是可以的 ...

  2. Qt下libusb-win32的使用方法(转)

    源:Qt下libusb-win32的使用方法 之前一直找不到适合WIN7下的Tiny6410的USB下载软件,正好这几天开始学习USB,所以打算自己写一个专门用于Tiny6410的WIN7下的USB下 ...

  3. Qt下libusb-win32的使用方法

    之前一直找不到适合WIN7下的Tiny6410的USB下载软件,正好这几天开始学习USB,所以打算自己写一个专门用于Tiny6410的WIN7下的USB下载软件. 发现了libusb这个库可以用作无驱 ...

  4. 【转】Qt下使用glut库

    ps:这个说的很明白,尤其是win10环境下用mingw环境时编程时碰到的问题, 1.加 windows.h 2.在.pro 添加libs     博文地址:Qt下使用glut库   本人使用的环境 ...

  5. VC++或QT下 高精度 多媒体定时器

    在VC编程中,用SetTimer可以定义一个定时器,到时间了,就响应OnTimer消息,但这种定时器精度太低了.如果需要精度更高一些的定时器(精 确到1ms),可以使用下面的高精度多媒体定时器进行代码 ...

  6. Qt下libusb-win32的使用(二)批量读写操作

    一.概述 学习libusb-win32的使用.使用批量传输方式与USB开发板进行数据读.写操作.上位机使用Qt做界面, 使用USB开发板的端点2作为批量传输端点. 二.实现 代码比较简单,直接给出,如 ...

  7. delphi中formatFloat代码初探(在qt下实现floatformat的函数)

    由于项目需要,需要在qt下实现floatformat的函数.之前写过一个,但是写得不好.决定重新写一个,参考delphi xe2下的实现.把xe2下的相关代码都看了一遍,xe2的代码思路在这里贴出来. ...

  8. QT下资源使用和资源占用…(可以动态加载资源文件,这样不占内存)

    原文地址:关于QT下资源使用和资源占用内存过多的问题作者:技术成就梦想     最近研究了一下如何从外部动态调用图片的问题,从而研究了图片资源的使用方法.网上最常见的帖子是这个,感觉总结的还不错. h ...

  9. windows下实现win32俄罗斯方块练手,编程的几点心得

    编程珠玑2阅读笔记: 1.使用c语言性能监视器,完成对代码的调优工作 2.关联数组:  拓扑排序算法,可以用于当存在遮挡的时候决定三维场景的绘制顺序. 3.小型算法中的测试与调试工具 脚手架程序:&l ...

随机推荐

  1. CodeCombat地牢关卡Python代码

    最近迷上了玩CodeCombat,特将地牢关卡的Python代码整理如下,供有兴趣的人学习交流探讨 1,Kithgard地牢 hero.moveRight() hero.moveDown() hero ...

  2. Python——errno

    该模块实现标准的 errno 系统符号,每一个对应于一个整数,名称和描述借鉴了 linux/include/errno.h.  errno.errorcode 包含从 errno 到底层系统中错误名称 ...

  3. Java Decompiler Plugin For Eclipse IDE

    1. 下载JAD , 1.5.8版本的jad在 http://www.softpedia.com/progDownload/JAD-Download-85911.html 将展开后的jad.exe放到 ...

  4. 8款最新CSS3表单 环形表单很酷

    当我们在网站上注册登录还是提交评论,都需要用到表单,今天我们来分享8款最新CSS3表单,有几个效果很酷很特别,有些也非常实用,一起来看看. 1.CSS3环形特色表单 转圈切换表单焦点 这款CSS3表单 ...

  5. 面向切面编程(AOP)简介

    在软件中,有些行为对于大多数应用都是通用的.日志,安全和事务管理几乎是所有软件都需要的.他们是否可以主动的参与呢,如果让应用程序只关注与自己所针对的业务领域问题,而其他的问题有其他应用对象来处理.是否 ...

  6. http 断点续传

    一.序 Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成.大多数 HTTP 协议的使用 ...

  7. 《Thinking in Java》习题——吸血鬼数字

    最近在看<Java编程思想>,这本书非常棒,不愧是Java程序员的圣经.看到第四章,后面有道题目很有意思,于是就自己做了做.

  8. libaio.so.1: undefined reference to `__stack_chk_fail@GLIBC_2.4'

    没有别的原因: 找正确的  libaio.so.1 包就成. 我这儿有,需要的可以下载奥!

  9. 详解MathType中如何更改公式颜色

    在MathType数学公式编辑器中可以通过更改公式颜色,起到美化.标注公式的效果.本教程将详解MathType中如何更改公式颜色. 点击菜单栏中的样式->格式->颜色,用户就可以根据自己的 ...

  10. Tensorflow同时加载使用多个模型

    在Tensorflow中,所有操作对象都包装到相应的Session中的,所以想要使用不同的模型就需要将这些模型加载到不同的Session中并在使用的时候申明是哪个Session,从而避免由于Sessi ...