使用libusb库笔记
来源:互联网 发布:进销存带人力资源软件 编辑:程序博客网 时间:2024/05/16 09:33
libusb简介
libusb是一套可以比较简单的访问usb设备的api. libusb在不同的语言和不同的系统平台上都有实现,关于libusb的其他优点,可以访问libusb官网(http://libusb.org). 几经折腾,终于可以在ubuntu上用libusb读写数据了. 记录一下容易忽略的地方.
常见返回错误码解决
1. configuration选择,interface认领和endpoint地址
需要先行了解usb设备的配置,接口和端点概念.启用的配置,认领的接口和端点地址存在包含关系.认领某接口需要确定当前选择的配置包含该接口,读写数据时,需要确定当前接口包含这些端点,同时端点类型和地址无误.
2. libusb_ -7 (Operation time out)
同步io操作比较简单,但可能会出现超时. 将超时设置为0,永不超时,可以解决返回超时错误.
3. libusb_claim_interface 函数总是返回 -6 (Resource busy).
解决这个问题,花费的时间最多.即使按照libusb的example 和stackoverflow上提到的,先调用libusb_detach_kernel_driver函数,也不能解决.
后来查看libusb.h文件,发现有libusb_reset_device函数,尝试在认领接口前,先调用该函数,发现认领接口不再返回错误码.
经测试,只要调用了libusb_reset_device函数,不需要再调用libusb_detach_kernel_driver方法.
该方法可以临时解决问题,不确定会不会产生其他问题.
总结
- device or resource busy 或者 entity not found 可能需要参考解决方法1
- 上一条确认没问题,即使调用libusb_detach_device_driver 也没解决,可以试试解决方法3
- 同步操作,timeout问题试试解决方法2
1 1
- 使用libusb库笔记
- Libusb库的使用
- libusb使用
- libusb使用
- 在vs2012中使用libusb-1.0库
- libusb库使用(快速上手)
- libusb学习笔记
- qt mac 使用libusb
- linux下libusb使用
- libusb的使用
- 使用libusb库枚举mac设备下面的USB设备
- linux下USB驱动分析以及libusb库的使用
- USB设备开发---- usb描述符概述(libusb库使用)
- Libusb库在Android下的使用例程
- libusb-win32.lib 笔记
- linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法
- linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法
- LIBUSB
- iTOP 4412安装嵌入式linux编译环境
- 分治策略
- Wordpress删除Redis页面缓存的方法
- nyist_1011 So Easy[II]
- 2.Java 程序与结构
- 使用libusb库笔记
- ActionBar 和抽屉 的应用
- Vector Multiplication with Map-Reduce
- dispatch_after的使用及iOS延时实现方法
- JavaScript实现的9大排序算法
- Ubuntu server 14.04 虚拟机的安装过程
- TimesTen 数据库复制学习:11. ASP带缓存组复制的几种固定架构模式
- spring tx:advice 和 aop:config 配置事务
- 结构型模式——适配器模式