USB开发相关记录

1. 开发环境及参考

1.1 语言对应的开发包

C/C++ libusb
C# >>>>>
libUSBDotNet–安装包 LibUsbDotNet_Setup.2.2.8.exe
HID 操作库
WINUSBnet ,貌似只能高速(480M),不能低速

python pyUSB

自发自收下位机

stm32的USB自定义HID与上位机通信

USB基础

USB协议相关代码的意思
在这里插入图片描述

参考资料

微软Docs Windows Windows 驱动程序 驱动程序技术 USB
USB官方文档库

2. python 操作

2.1 挂载驱动

在这里插入图片描述

点击 install 安装后面就可以在代码中安装
在这里插入图片描述

2.2 安装完成之后打开python代码开始查看信息

import usb.core
all_devs = usb.core.find(find_all=True)
for devices1 in all_devs:
    print(devices1)

3. C# 代码操作

3.1 实现对设备信息的读取

  1. 首先操作 2.1 给设备安装一个驱动

  2. 新建一个控制台工程

  3. 安装USB控制的包:Install-Package LibUsbDotNet -Version 2.2.29

  4. 写入如下的代码

如果挂载正常的话可以显示出之前被挂载的设备的信息

using System;

using LibUsbDotNet;
using LibUsbDotNet.Info;
using LibUsbDotNet.Main;
using System.Collections.ObjectModel;


namespace ConsoleApp1
{
    internal class Program
    {
        public static UsbDevice MyUsbDevice;

        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            // Dump all devices and descriptor information to console output.
            UsbRegDeviceList allDevices = UsbDevice.AllDevices;
            foreach (UsbRegistry usbRegistry in allDevices)
            {
                if (usbRegistry.Open(out MyUsbDevice))
                {
                    Console.WriteLine(MyUsbDevice.Info.ToString());
                    for (int iConfig = 0; iConfig < MyUsbDevice.Configs.Count; iConfig++)
                    {
                        UsbConfigInfo configInfo = MyUsbDevice.Configs[iConfig];
                        Console.WriteLine(configInfo.ToString());

                        ReadOnlyCollection<UsbInterfaceInfo> interfaceList = configInfo.InterfaceInfoList;
                        for (int iInterface = 0; iInterface < interfaceList.Count; iInterface++)
                        {
                            UsbInterfaceInfo interfaceInfo = interfaceList[iInterface];
                            Console.WriteLine(interfaceInfo.ToString());

                            ReadOnlyCollection<UsbEndpointInfo> endpointList = interfaceInfo.EndpointInfoList;
                            for (int iEndpoint = 0; iEndpoint < endpointList.Count; iEndpoint++)
                            {
                                Console.WriteLine(endpointList[iEndpoint].ToString());
                            }
                        }
                    }
                }
            }


            // Free usb resources.
            // This is necessary for libusb-1.0 and Linux compatibility.
            UsbDevice.Exit();

            // Wait for user input..
            Console.ReadKey();
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值