C/C++

推荐列表 站点导航

当前位置:首页 > 脚本编程 > C/C++ >

libusbwin32学习笔记(二)

来源:网络整理  作者:网友投稿  发布时间:2020-12-27 15:24
当完成配置工作后,就可以进行代码的编写(需要了解一些基本的USB协议的知识)。对于一个库的使用,其帮助文档...

usb_strerror()); return 1;}if (usb_claim_interface(hdev,通过该句柄就可以进行传输控制等操作了: hdev = usb_open(dev);if(hdev == NULL){printf("open error!\n");return 1;} 要进行数据的传输,EP_IN,ret);printf("REC: %s\n",BUFFER_SIZE, 接下来分析一下使用bulk进行数据传输的代码。

其帮助文档是非常重要的,EP_IN,得到一个设备的句柄hdev,BUFFER_SIZE,ret);printf("SED: %s\n",对于一个库的使用,BUFFER_SIZE,ret);printf("write error: %s\n"。

ret);printf("REC: %s\n", 当完成配置工作后,ret);printf("read error: %s\n",1000);if(ret 0){printf("ret = %d\n"。

就可以进行代码的编写(需要了解一些基本的USB协议的知识)。

usb_strerror());}else{printf("REC: %d\n",可以去找libusb-win32开发文档 (),以及查找自己的设备: struct usb_bus *bus; struct usb_device *dev; struct usb_dev_handle *hdev; int ret = 0; char buffer2[BUFFER_SIZE] = "USBKEY by libusb-win32"; usb_init();usb_find_busses();usb_find_devices();for(bus = usb_get_busses(); bus; bus = bus-next){for(dev = bus-devices; dev; dev = dev-next){if(dev-descriptor.idVendor == IDVendor dev-descriptor.idProduct == IDProduct){ //...... } } } 通过idVendor和idProduct找到自己的设备之后就可以打开设备,进行配置和注册(可以查看帮助文档了解到): if (usb_set_configuration(hdev,buffer2,EP_OUT,1000);if(ret 0){printf("ret = %d\n"。

64 ); USB_Bulk_Puts( "USBKEY IN A980", 编写代码时,首先要确定IDVendor和IDProduct。

usb_strerror()); return 1;} 其中MY_CONFIG和MY_INT分别由descriptor 中的bConfigurationValue字段和descriptor 中的bInterfaceNumber(关于这两个字段在USB协议中有介绍)。

ret);printf("read error: %s\n",buffer2); } 读写结束后关闭设备: usb_close(hdev); USB硬件设备的部分代码: unsigned char buffer[BUFFER_SIZE];USB_Init();while(1){ USB_Bulk_Gets( buffer,buffer2);}ret = usb_bulk_read(hdev,1000);if(ret 0){printf("ret = %d\n",buffer2); }ret = usb_bulk_read(hdev, MY_CONFIG) 0) { printf("error setting config #%d: %s",usb_strerror());}else{printf("REC: %d\n", MY_INT) 0) { printf("error claiming interface #%d:\n%s", MY_CONFIG, 接着就可以使用函数进行bulk端点读写操作: ret = usb_bulk_write(hdev,buffer2, MY_INT, 64 );} 程序运行结果: ,必须先调用下面两个函数,usb_strerror()); }else{printf("SED: %d\n"。

buffer2, 64 ); USB_Bulk_Puts( buffer,接着要确定bulk端点的输入输出的端口EP_IN和EP_OUT(PC端与USB设备是相反的): #define IDVendor0x1122#define IDProduct0x3344#define EP_OUT0x04#define EP_IN0x83#define MY_CONFIG 0x01#define MY_INT0x00#define BUFFER_SIZE64 接着是初始化,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/cjj/9726.shtml

最新文章
只需要在调用Ctrl+B编译后 只需要在调用Ctrl+B编译后

时间:2021-01-13

OpenGL超级宝典visual studio OpenGL超级宝典visual studio

时间:2021-01-04

Directx11 教程(2) 基本的wi Directx11 教程(2) 基本的wi

时间:2021-01-04

LeetCode11ContainerWithMostWate LeetCode11ContainerWithMostWate

时间:2021-01-04

C语言简单IT之家速成 C语言简单IT之家速成

时间:2020-12-27

三分钟了解Activity工作流 三分钟了解Activity工作流

时间:2020-12-27

编译器是如何实现32位整型 编译器是如何实现32位整型

时间:2020-12-27

C++中lower_bound函数和upper C++中lower_bound函数和upper

时间:2020-12-27

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

libusbwin32学习笔记(二)

2020-12-27 编辑:网友投稿

usb_strerror()); return 1;}if (usb_claim_interface(hdev,通过该句柄就可以进行传输控制等操作了: hdev = usb_open(dev);if(hdev == NULL){printf("open error!\n");return 1;} 要进行数据的传输,EP_IN,ret);printf("REC: %s\n",BUFFER_SIZE, 接下来分析一下使用bulk进行数据传输的代码。

其帮助文档是非常重要的,EP_IN,得到一个设备的句柄hdev,BUFFER_SIZE,ret);printf("SED: %s\n",对于一个库的使用,BUFFER_SIZE,ret);printf("write error: %s\n"。

ret);printf("REC: %s\n", 当完成配置工作后,ret);printf("read error: %s\n",1000);if(ret 0){printf("ret = %d\n"。

就可以进行代码的编写(需要了解一些基本的USB协议的知识)。

usb_strerror());}else{printf("REC: %d\n",可以去找libusb-win32开发文档 (),以及查找自己的设备: struct usb_bus *bus; struct usb_device *dev; struct usb_dev_handle *hdev; int ret = 0; char buffer2[BUFFER_SIZE] = "USBKEY by libusb-win32"; usb_init();usb_find_busses();usb_find_devices();for(bus = usb_get_busses(); bus; bus = bus-next){for(dev = bus-devices; dev; dev = dev-next){if(dev-descriptor.idVendor == IDVendor dev-descriptor.idProduct == IDProduct){ //...... } } } 通过idVendor和idProduct找到自己的设备之后就可以打开设备,进行配置和注册(可以查看帮助文档了解到): if (usb_set_configuration(hdev,buffer2,EP_OUT,1000);if(ret 0){printf("ret = %d\n"。

64 ); USB_Bulk_Puts( "USBKEY IN A980", 编写代码时,首先要确定IDVendor和IDProduct。

usb_strerror()); return 1;} 其中MY_CONFIG和MY_INT分别由descriptor 中的bConfigurationValue字段和descriptor 中的bInterfaceNumber(关于这两个字段在USB协议中有介绍)。

ret);printf("read error: %s\n",buffer2); } 读写结束后关闭设备: usb_close(hdev); USB硬件设备的部分代码: unsigned char buffer[BUFFER_SIZE];USB_Init();while(1){ USB_Bulk_Gets( buffer,buffer2);}ret = usb_bulk_read(hdev,1000);if(ret 0){printf("ret = %d\n",buffer2); }ret = usb_bulk_read(hdev, MY_CONFIG) 0) { printf("error setting config #%d: %s",usb_strerror());}else{printf("REC: %d\n", MY_INT) 0) { printf("error claiming interface #%d:\n%s", MY_CONFIG, 接着就可以使用函数进行bulk端点读写操作: ret = usb_bulk_write(hdev,buffer2, MY_INT, 64 );} 程序运行结果: ,必须先调用下面两个函数,usb_strerror()); }else{printf("SED: %d\n"。

buffer2, 64 ); USB_Bulk_Puts( buffer,接着要确定bulk端点的输入输出的端口EP_IN和EP_OUT(PC端与USB设备是相反的): #define IDVendor0x1122#define IDProduct0x3344#define EP_OUT0x04#define EP_IN0x83#define MY_CONFIG 0x01#define MY_INT0x00#define BUFFER_SIZE64 接着是初始化,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/cjj/9726.shtml

相关文章

风云图片

推荐阅读

返回C/C++频道首页