private void DeviceRemovedHandler()
Console.WriteLine("Device removed.");
将就的用用吧!
C# usb Hid 设备通讯示列(连接hid设备,发送指令,接收数据等),win xp/win7/win10均测试通过给有需要的人
需要设置正确的vid和pid,代码比较简单一般人应该都能看懂
vid和pid查看方法,我的电脑--右键--设备管理器--人体学输入设备--
选择要查看的设备--右键属性--详细信息--硬件ID就可以看到了
赋所有源代码,开发工具vs2010 framework3.5
baidu搜索c# HidUsb都是大同小异案例,而且拿下来基本不能用。大都是围绕public static extern int CreateFile(省略众多参数..);发现没有,copy下来测试基本都是用不了的。
原因很简单:windows不允许你用程序随便就去访问硬件设备。所以在此把之前做过的基于C#开发读写HidUsb设备的项目整理成一个简单的小案例,分享给大家,开发环境VS2010。
该案例重点在public static extern SafeFileHandle CreateFile(string lpFileName, uint dwDesiredAccess, int dwShareMode, IntPtr lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile); 看着貌似也是用到CreateFile这个函数,其实并不然,注意到没有"SafeFileHandle",这就是重点! 这样windows是允许程序访问外接hidusb设备的。
当然具体如何运用这个函数现在已经不是您应该
关心的了,因为我已经为您把它封装成一个类,您只要调用相应的方法就OK.
//第一步:获取HidUsb设备信息
List slist = new List();
UsbHidDevice usbhid = new UsbHidDevice();
usbhid.GetDeviceList(ref slist); //HidUsb设备信息包含在List数据集中
注:当获取到HidUsb设备信息为:\\?\hid#vid_0e2c&pid;_0112#6&1b44c403;&0&0000;#{4d1e55b2-f16f-11cf-88cb-001111000030},
注意该字符串里的“vid_0e2c”和“pid_0112”部分,那么: vid为0e2c, pid为:0112
//第二步:创建一个HidUsb设备访问实例
UsbHidDevice Device = new UsbHidDevice(vid, pid);
//第三步:连接HidUsb设备
Boolean connBool = Device.Connect();
//第四步:实现数据接收事件
Device.DataReceived += new UsbHidDevice.DataReceivedDelegate(Device_DataReceived);
//当HidUsb设备返回信息时触发此事件
void Device_DataReceived(byte[] data)
//处理接收到的数据逻辑
//第五步:向Hid设备发送数据"0xa0 00 0x12 0x9 0x22"
string txt = "0xa0 00 0x12 0x9 0x22";
//把数据转换为字节数组
byte[] data = ConvertHelper.StringToByte(txt2);
byte bt = 0;
CommandMessage cmdMsg = new CommandMessage(bt, data);
Boolean sbool = Device.SendMessage(cmdMsg); //发送数据
//第六步:释放所有资源
Device.Dispose();
注意:此库的支持非常有限。 解决这么多设备和配置的问题几乎是不可能的。 社区可能会提供一些帮助,但您将主要靠自己。 如果您提交问题,请提供相关代码片段以及有关您的操作系统、.NET 版本和设备的详细信息。 欢迎和赞赏拉取请求。
隐藏图书馆
该库使您能够枚举 .NET 中的 Hid 兼容 USB 设备并与之通信。 它提供同步和异步读写功能以及插入和移除设备的通知。 这个库适用于 x86 和 x64。
PM> Install-Package hidlibrary
本杰明·韦格曼
jwelch222
托马斯·哈默
朱利安西伯特
乔治·哈恩
里克·范·利斯霍特
保罗·特兰登
尼尔·泰森
布鲁诺·尤奇利
斯布莱克莫尔
马雷克·罗斯科
比尔普雷斯科特
阿南斯·雷切拉
感谢 JetBrains 为R#和dotTrace提供 OSS 许可证!
write(startByte);
enableUsbBufferEvent(new System.EventHandler(myEventCacher));
Thread.Sleep(5);
startRead();
stopRead();
write(stopByte)
c# 下收发usb消息,usb通信程序,大概流程和这篇博客写的差不多(https://www.cnblogs.com/xidongs/archive/2011/11/28/2266100.html)。
这个github上的库也很好,个人觉得用库更方便,地址(https://github.com/mikeobrien/HidLibrary)。
两者底层都是调用setupapi.dll,hid.d...
HidLibrary - 强大的 HID 设备访问库
HidLibrary 是一个开源的 C# 库,用于在 Windows、Linux 和 macOS 上访问硬件设备,尤其是那些遵循 HID(人类接口设备)协议的设备。通过这个库,开发者可以轻松地与 USB 控制器、游戏手柄、键盘等 HID 设备进行交互。
为什么选择 HidLibrary?
跨平台:HidLibrary 支持 Windows、...
USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB HID测试工具(C#)USB H
C#和USB HID进行通讯,实现发送、接收数据主要是通过两个函数实现的FileStream.Write(...)(发送数据)、FileStream.Read(...)(接收数据)。Write和Read是同步,BeginWrite和BeginRead是异步。
或者是c++的库函数WriteFile()、ReadFile(),在库kernel32.dll中。(但是我的项目发现WriteFile()
本文转载于:https://blog.csdn.net/u010875635/article/details/73321066
Windows使用HID通信相对比较简单,HID都是通过PID、VID信息来查找连接的,相比于串口,几乎无变化,连接无需人工选择,十分方便,也不需要驱动。
下面上实例,PID为0x003f,VID为0x04D8,支持发送接收数据显示到UI,使用C#来编...