网上C#USB通信的资料比较少, 基本上都是基于LibUsbDotNet 和 CyUsb, 关于打印机设备的还有一个OPOS。

本篇文章基于LibUsbDotNet。

  1. 下载并安装 LibUsbDotNet 安装文件。

  2. 运行Filter Wizard, Install a device filter。 安装需要通信的usb设备。

  

  3. 建一个简单的控制台项目,进行测试, 下图为打印需要通信设备的信息。

  

相关代码:  

引用  

using LibUsbDotNet;
using LibUsbDotNet.Main;
using LibUsbDotNet.Info;

PrintUsbInfo

 public static void PrintUsbInfo(){UsbDevice usbDevice = null;UsbRegDeviceList allDevices = UsbDevice.AllDevices;Console.WriteLine("Found {0} devices", allDevices.Count);foreach (UsbRegistry usbRegistry in allDevices){Console.WriteLine("Got device: {0}\r\n", usbRegistry.FullName);if (usbRegistry.Open(out usbDevice)){Console.WriteLine("Device Information\r\n------------------");Console.WriteLine("{0}", usbDevice.Info.ToString());Console.WriteLine("VID & PID: {0} {1}", usbDevice.Info.Descriptor.VendorID, usbDevice.Info.Descriptor.ProductID);Console.WriteLine("\r\nDevice configuration\r\n--------------------");foreach (UsbConfigInfo usbConfigInfo in usbDevice.Configs){Console.WriteLine("{0}", usbConfigInfo.ToString());Console.WriteLine("\r\nDevice interface list\r\n---------------------");ReadOnlyCollection<UsbInterfaceInfo> interfaceList = usbConfigInfo.InterfaceInfoList;foreach (UsbInterfaceInfo usbInterfaceInfo in interfaceList){Console.WriteLine("{0}", usbInterfaceInfo.ToString());Console.WriteLine("\r\nDevice endpoint list\r\n--------------------");ReadOnlyCollection<UsbEndpointInfo> endpointList = usbInterfaceInfo.EndpointInfoList;foreach (UsbEndpointInfo usbEndpointInfo in endpointList){Console.WriteLine("{0}", usbEndpointInfo.ToString());}}}usbDevice.Close();}Console.WriteLine("\r\n----- Device information finished -----\r\n");}}

调用

public static void Main(string[] args){PrintUsbInfo();// Wait for user input..Console.ReadKey();}

转载于:https://www.cnblogs.com/jackbase/p/7244046.html

C#基于LibUsbDotNet实现USB通信(一)相关推荐

  1. C8051F340的USBXpress开发包USB通信设计

    传统的USB设备驱动程序编写异常复杂,程序员往往很难入手.SILICON Laboratories公司提供的USBXpress开发包大大简化了USB通信的应用和相关驱动程序的开发,只要做好开发前的准备 ...

  2. 基于AOA协议的android USB通信

    摘 要:AOA协议是Google公司推出的用于实现Android设备与外围设备之间USB通信的协议.该协议拓展了Android设备USB接口的功能,为基于Android系统的智能设备应用于数据采集和设 ...

  3. 基于USB通信的开关量输入输出板

    难点在于usb通信.以及上位机程序 两个方案: 1.基于stm32的,自带usb口,tqfp100封装,可以保证16输 入,16输出的i/o. 2.基于cy68013+fpga的方案,有现成的开发板, ...

  4. 多通路fpga 通信_基于USB通信的FPGA高速数据采集系统研究

    摘要:现阶段,在经济高速发展以及科学技术不断进步的大背景下,我国各行各业都得到了快速发展的良机,对数据采集系统的实际需求也越来越多,也对高速数据采集系统的实用性和精度等都提出了更高的要求.基于此,本文 ...

  5. 基于libUSB的USB设备固件更新程序(下载数据)(转)

    源:基于libUSB的USB设备固件更新程序(下载数据) 本文紧接上一篇日志:基于libUSB-Win32的USB设备固件更新程序(前言),相关背景以及起因等,此处不再赘述,如感兴趣请移步. libU ...

  6. 基于Linux的USB 主/从设备之间通讯的三种方式

    转载:http://archive.eet-china.com/www.eet-china.com/ART_8800323770_617693_TA_eda530e7.HTM 随着简单易用的USB接口 ...

  7. 基于Linux的USB主/从设备之间的三种通信方式-转

    随着简单易用的接口日益流行,在中添加对USB接口的支持已成为大势所趋.本文通过介绍中支持USB的各种模块和库,分析了在Linux上利用USB实现高速串口和以太网连接等通信方式的具体方法. 通用串行总线 ...

  8. 基于距离传感器的I2C通信(一)

    基于距离传感器的I2C通信(一) 一.软硬件准备 (一)硬件 (二)软件 ST-Link驱动的下载安装 二.keil软件的配置 (一)初始配置 (二)程序下载及调试 三.器件的初步了解 四.接线方法 ...

  9. linux配置usb主从_基于Linux的USB主/从设备之间的三种通信方式

    随着简单易用的USB接口日益流行,在嵌入式系统中添加对USB接口的支持已成为大势所趋.本文通过介绍Linux中支持USB的各种模块和库,分析了在Linux上利用USB实现高速串口和以太网连接等通信方式 ...

最新文章

  1. 服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型
  2. stl algorithm -- sort ,unique
  3. rmdir命令--Linux命令应用大词典729个命令解读
  4. 第二章 Qt Widgets项目的创建、运行和发布的过程
  5. Java基础语法学习11——流程控制(循环)
  6. SAP License:sap培训
  7. [Altera在线教学].Altera SERDES应用教学,2小时10分钟,172张胶片
  8. python安装哪个版本好啊_Python 的版本选择与安装细节
  9. 42道计算机网络面试高频题+答案,面试官喜欢的答案都在这里
  10. 求一段看不懂的乱码_这些真的不是乱码,是汉字!竟然一个都不认识
  11. 身份证验证接口有哪些验证类型
  12. Oracle 锁详解(lock)
  13. 刷cadn浏览量阅读量第二中方法
  14. 拼多多面试——机器学习岗位面经
  15. MySQL No compatible servers were found.You’ll need to cancel this wizard and install one
  16. 手机也能当门卡?!--NFC技术应用
  17. phpcms实现手机端与PC端双模板的方法与详细教程(同步跳转)
  18. vba 根据字节数截取字符串
  19. linux 内存溢出排查_Linux 系统内存泄漏的堆积隐患的排查与解决方法
  20. 2014北邮网研机试

热门文章

  1. 行内元素中间出现空隙
  2. Android NDK工程创建与编译运行
  3. [译]JavaScript 究竟是如何工作的?(第一部分)
  4. SharePoint Server 2016 PWA(Project web app) 被变为只读模式
  5. 一种M2M业务的架构及实现M2M业务的方法
  6. Android Studio项目整合PullToRefresh的问题记录
  7. i++与++i的区别,使用实例说明
  8. 【转载】 Asp.net Mvc 3当然也不会例
  9. 本机获取Intel AMT IP地址的例子
  10. 软件工程中的启发规则