C# USB通信技术(通过LibUsbDotNet库)

news2024/11/23 9:10:03

文章目录

    • 1.下载LibusbDotNet库
    • 2.引入命名空间
    • 3. 实例化USB设备
    • 4.发送数据
    • 5.关闭连接

1.下载LibusbDotNet库

右击项目选择管理NuGet程序包

在这里插入图片描述
在弹出的界面中搜索LibusbDotNet,然后下载安装。在这里插入图片描述

2.引入命名空间

using LibUsbDotNet;
using LibUsbDotNet.Main;

3. 实例化USB设备

//替换自己的PID和VID,在设备管理器中查看
UsbDeviceFinder myUsbFinder = new UsbDeviceFinder(vid, pid);
UsbDevice myUsbDevice = UsbDevice.OpenUsbDevice(myUsbFinder);
                  
IUsbDevice wholeUsb = myUsbDevice as IUsbDevice;
wholeUsb.SetConfiguration(1);//选择第一个可用配置
wholeUsb.ClaimInterface(0);//使用第一个接口

4.发送数据

byte[] b = Encoding.ASCII.GetBytes(liens);
int bytesWritten;
//配置输出端点
UsbEndpointWriter endpointWriter = myUsbDevice.OpenEndpointWriter(WriteEndpointID.Ep01);
//b:发送的数据
//1000:延时1毫秒
//bytesWritten:发送的字节数
endpointWriter.Write(b, 1000, out bytesWritten);

5.关闭连接

myUsbDevice.Close();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2130172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

细数H.264 H.265 H.266区别

H.264、H.265(HEVC)和H.266(VVC)是三种不同的视频编码标准,它们在压缩效率、图像质量、支持的分辨率以及技术特性等方面存在显著差异。以下是对这三种编码标准的详细比较: 概述 H.264:也称为AV…

TCP全连接队列和tcpdump抓包

全连接队列 listen第二个参数 服务器在调用listen的时候,listen的第二个参数 1,就是TCP全连接队列的长度。 当客户端的连接进入established 状态后,如果服务器没有调用accept将连接取走,那么该连接就会待在TCP全连接队列中&a…

Edge浏览器设置夜间模式/深色模式

问题背景 普通白色背景感觉有点刺眼,想改成深色背景,但是默认的设置里面只能修改边框的颜色: 这里虽然设置界面和边框变成了黑色的,但是实际上打开网页还是白色的。 全局配置 在Edge浏览器打开edge://flags/,然后搜索D…

海垦集团养殖场分布式光伏发电项目中的案例分享

1客户需求 海南农垦集团,原海南省农垦总公司,是中央直属三大垦区之一。集团在海南有多个养殖场,包括红华养猪场、红华肉牛繁育场等,计划在这些养殖场的屋顶安装分布式光伏系统,用于自发自用和余电上网。红华养猪场和红…

基于ESP32S3的链接大语言模型对话模块

本实物模块从实物外观、模块组成、API申请及功能说明四部分来介绍这款基于ESP32S3的大语言模型对话模块。 1、实物外观 2、模块介绍 本硬件平台主要由三个模块组成,包括MAX9814录音模块、MAX98357音频功放模块和ESP32S3模块。如下图所示。 MAX9814录音模块&#…

mac 如何开启指定端口供外部访问?

前言 需要 mac 上开放指定端口,指定 ip 访问 解决 在 macOS 上开放一个端口,并指定只能特定的 IP 访问,可以使用 macOS 内置的 pfctl(Packet Filter)工具来实现。 1、 编辑 pf 配置文件: 打开 /etc/pf.conf 文件进行编辑。 可以使…

深度解读MySQL意向锁的工作原理机制与应用场景

意向锁 意向锁的概念 意向锁是InnoDB自动添加的一种锁,不需要用户去干预。 是数据库中的一种表级锁,一个事务要给一个资源加锁时,必须要先获取到对应类型的意向锁之后,才可以给这个资源加上自己想要的共享锁或者排他锁&#xff0…

【C++ 面试 - 新特性】每日 3 题(十一)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

电容器制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

在当今全球制造业的数字化转型浪潮中,电容器制造业作为电子元件的关键领域,正积极拥抱5G智能工厂与物联数字孪生平台技术,以推动生产效率的飞跃和产品质量的提升。这一创新模式不仅为电容器制造业注入了新的活力,也为整个制造业的…

植物三萜皂苷生物合成途径及调控机制研究进展-文献精读48

摘要 三萜皂苷(triterpenoids saponins)是由三萜皂苷元和一个或多个糖基和/或其他化学基团缩合而成的一系列结构多样的天然化合物[1], 主要分布在五加科、蝶形花科、石竹科、桔梗科、毛茛科、玄参科、葫芦科等植物中[2]. 植物中三萜皂苷常分布在特定的器官和组织, 如人参(Pana…

TypeScript中 unknown类型的变量值赋值给具体类型的变量

将unknown类型分配给string类型,但我就想给y 赋值,提供了几个方法 // unknown 是类型安全的any let x : unknown; x 1; x true; x sdfj;let y : string; // y x;//不能将unknown类型分配给string类型,但我就想给y 赋值 ,下方…

Matlab如何配置小波工具(Wavelet Toolbox)

1、发现问题 因为实验要使用小波工具函数,运行时报错如下: 查看对应文件夹发现没有小波工具(也可在控制台输入ver),检查是否有该工具,输入后回车返回如下: 2、下载工具包 没有这个工具就要去下…

信息安全数学基础(8)整数分解

前言 在信息安全数学基础中,整数分解是一个核心概念,它指的是将一个正整数表示为几个正整数的乘积的形式。虽然对于任何正整数,理论上都可以进行分解(除了1只能分解为1本身),但整数分解在密码学和信息安全中…

机器学习:逻辑回归--过采样

目录 前言 一、为什么使用过采样? 二、代码实现 1.完整代码 2.数据预处理 3.进行过采样 4.建立模型 5.绘制混淆矩阵 总结 前言 过采样(Oversampling)是指在数据处理或机器学习中,增加少数类样本的数量以平衡类别分布。常…

JMM 指令重排 volatile happens-before

在单线程程序中,操作系统会通过编译器优化重排序、指令级并行重排序、内存系统重排序三个步骤对源代码进行指令重排,提高代码执行的性能。 但是在多线程情况下,操作系统“盲目” 地进行指令重排可能会导致我们不想看到的问题,如经…

Android Tools | 如何使用Draw.io助力Android开发:从UI设计到流程优化

Android Tools | 如何使用Draw.io助力Android开发:从UI设计到流程优化 1. 引言 在Android开发中,视觉化设计与流程管理至关重要。虽然开发工具如Android Studio强大,但它并不适用于所有设计场景。Draw.io是一款免费的在线绘图工具&#xff…

黑马头条第八天实战(上)

D8 1)登录功能需求说明 用户根据用户名和密码登录密码需要手动加盐验证需要返回用户的token和用户信息 2)模块搭建思路步骤 2.1)模块作用 先捋一下之前搭模块干了啥 feign-api 远程调用 自媒体保存时调用远程客户端进行增加文章&#x…

UE5中使用UTexture2D进行纹理绘制

在UE中有时需要在CPU阶段操作像素,生成纹理贴图等,此时可以通过UTexture2D来进行处理,例子如下: 1.CPP部分 首先创建一个蓝图函数库,将UTexture2D的绘制逻辑封装成单个函数: .h: #include &…

文本转语音工具 ChatTTS 使用教程

文章目录 Part.I IntroductionPart.II 一键安装部署Chap.I 下载Chap.II 使用Chap.III 存在的问题 Part.III 手动部署Chap.I 快速使用Chap.II 开发教程 Reference Part.I Introduction ChatTTS (Chat Text To Speech) 是专门为对话场景设计的文本转语音模型,例如LLM…

arcgisPro添加属性域

1、创建一个面要素,结果如下: 2、在【内容】列表中,选中该要素,点击【数据】选项卡,如下: 3、点击【属性域】按钮,如下: 4、点击【新建域】 5、添加一行属性域,如 6、保存…