使用STM32的固件库进行USB-HID组合设备进行开发,3个HID接口。通过bus hound 来抓包分析发现 PC 发送set idle命令下去后,从设备没有响应,所以PC变为stall状态。通过分析源代码和HID协议,修补漏洞之后可以在任何电脑上枚举成功。里面有具体的参考文件及修改好的代码,有什么问题欢迎咨询我。谢谢。
2019-12-21 21:47:48 12.44MB STM32 HID
1
USB识别 HID识别 MFC代码
2019-12-21 21:36:28 4.77MB USB识别 HID识别
1
这是一个基于stm32f103 usb 的Win7系统触摸屏程序,绝对可以使用,GT811等资料都在里面,用的是IAR开发的。
2019-12-21 21:33:39 13.3MB stm32f103 USB_HID 5点触控 win7触摸
1
这是完整的USB项目。包含用keil写的C底层驱动 包含用C++写的上位机软件,能够完美实现USBbootloadr
2019-12-21 21:31:45 8.96MB USB HID
1
这个压缩包里面有3个文件:hidapi.dll,hidapi.h,hidapi.lib。Qt工程直接包含头文件,pro文件添加库就可以使用里面的方法
2019-12-21 21:26:28 16KB Qt USB HID 库和头文件
1
Qt操作USB HID的demo,需要把hidapi.dll文件放到exe所有目录,打包的时候忘了一起放在里面,偷懒没有重新打包可以自己到https://download.csdn.net/download/u012902367/10798837下载
2019-12-21 21:26:28 9KB Qt USB HID demo
1
This tool allows you to create, edit and validate HID Report Descriptors. The tool also supports a variety of output formats (.txt, .inc, .h, etc.). DT uses ASCII based Usage Tables and supports vendor defined pages as well. Included are Usage Table files for the HID Usage Table document 1.0 Release Candidate 1, Monitor Class 1.0 Release Candidate 2, and Power Class Spec. Read the included README.TXT file for more information.
2019-12-21 21:25:08 77KB HID Descriptor Tool
1
C#版USB-HID范例,原文链接:https://blog.csdn.net/u010875635/article/details/73321066
2019-12-21 21:20:50 30KB C# USB HID
1
STM32 USB-HID学习资料,包括USB-HIDdemo(51单片机和STM32),USB 上位机软件,USB开发笔记,usb抓包工具
2019-12-21 21:19:45 40.48MB STM32 USB-HID USB协议
1
赋所有源代码,开发工具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();
2019-12-21 21:19:34 307KB hidusb hid usb
1