要使用 LibUsbDotNet 库在 C# 中通过 USB 端口写入数据,您可以按照以下步骤操作。这个过程包括安装库、配置项目、获取设备句柄以及执行写操作。
首先,您需要将 LibUsbDotNet 添加到您的项目中。可以通过 NuGet 包管理器来完成安装。
使用 NuGet 包管理器控制台安装:
打开 Visual Studio,导航到 工具 > NuGet 包管理器 > 包管理器控制台,然后运行以下命令:
Install-Package LibUsbDotNet
或者,您也可以通过 NuGet 图形界面 搜索 LibUsbDotNet 并安装最新版本。
确保您的项目具有管理员权限,因为访问 USB 设备通常需要提升的权限。
以下是一个基本的示例,展示如何使用 LibUsbDotNet 连接到 USB 设备并写入数据。
using System;
using LibUsbDotNet;
using LibUsbDotNet.Main;
namespace UsbWriteExample
{
class Program
{
// 替换为您设备的 Vendor ID 和 Product ID
private const int VendorID = 0x1234;
private const int ProductID = 0x5678;
static void Main(string[] args)
{
// 初始化 LibUsb
UsbDeviceFinder finder = new UsbDeviceFinder(VendorID, ProductID);
using (UsbDevice device = UsbDevice.OpenUsbDevice(finder))
{
if (device == null)
{
Console.WriteLine("未找到指定的 USB 设备。");
return;
}
IUsbDevice wholeUsbDevice = device as IUsbDevice;
if (!ReferenceEquals(wholeUsbDevice, null))
{
// 设置配置
wholeUsbDevice.SetConfiguration(1);
// 声明接口
wholeUsbDevice.ClaimInterface(0);
}
// 获取输出端点
UsbEndpointWriter writer = device.OpenEndpointWriter(WriteEndpointID.Ep01);
// 要写入的数据
byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 };
int bytesWritten;
ErrorCode ec = writer.Write(data, 2000, out bytesWritten); // 2000 毫秒超时
if (ec == ErrorCode.None)
{
Console.WriteLine($"成功写入 {bytesWritten} 字节的数据到 USB 设备。");
}
else
{
Console.WriteLine($"写入数据时出错: {ec}");
}
// 释放接口
if (wholeUsbDevice != null)
{
wholeUsbDevice.ReleaseInterface(0);
}
}
}
}
}
Ep01
或类似标识。领取专属 10元无门槛券
手把手带您无忧上云