STM32的usb hid针对set report命令该怎么回数据给主机? [问题点数:50分]

Bbs7
本版专家分:10111
结帖率 97.62%
Bbs7
本版专家分:10111
Bbs7
本版专家分:10111
Bbs7
本版专家分:10111
Bbs1
本版专家分:0
Bbs7
本版专家分:10111
Bbs6
本版专家分:6355
Blank
红花 2018年4月 硬件/嵌入开发大版内专家分月排行榜第一
Bbs7
本版专家分:10111
USB HID Report Descriptor 报告描述符详解(节选自HID1.11协议)
本文摘取自HID1.11协议文档,并通过自己的整理。 通过对本文的阅读,你将能明白HID报告描述符各Item的意义,以一个USB鼠标的报告描述符为例。并能根据自己的需要对报告描述符做修改。 本文大部分为英文原文,但是结构与原文有所差异。 HID1.11协议的原文我在以下帖子中有上传 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=482316
USB hid通信 间隔报告的困扰
平台:<em>stm32</em>  win7 winxp 代码:移植的是keil下例程更改。 需求:为了免驱,兼容win7 xp .没有用cdc 模式。而是采用 <em>hid</em>通讯。但是实际中有一个问题就是间隔报告。目前的策略是无协议通讯时,间隔报告无用<em>数据</em>。。用协议通讯时,报告实际协议内容。 如果间隔报告太频繁,则又太占<em>usb</em>带宽,如果间隔报告间隔太久,导致协议回应太慢,从而影响通讯速率。 如果下载大文
解决 USB stall pid问题(mute问题)
点击静音按钮出现 USTS c0000004 stall pid问题。 是因为<em>数据</em>没有收取,导致了<em>数据</em>的溢出。int <em>usb</em>d_ep0_recv(uint16_t length, <em>usb</em>d_ep_xfer_callback_t callback)static int uac_interface_class_request_out_handler(const <em>usb</em>d_interface_req_t...
USB-HID多点触摸的报告描述符和报告描述符中Feature报告的处理方法
code uint8 ReportDescriptor[]= { #ifdef TOUCH_SCREEN 0x05, 0x0d, // USAGE_PAGE (Digitizers) 0x09, 0x04, // USAGE (Touch Screen) 0xa1, 0x01, // COLLECTION (Application) 0x85, REPORTID_MTOUCH,
主机向HID设备读数据的过程
用户可以采用 中 断 或 轮询 USB_INTSTS 的 方 式 来 监 测 USB 传输 ,在 USB 传输 发 生 时 ,USB_INTSTS由硬件设置,并向CPU发送中断请求(如果相关中断使能),在没有使能中断时,用户可以轮询USB_INTSTS来获取事件,以下是中断使能时的控制流程.USB<em>主机</em>向设备控制器请求<em>数据</em>时,用户需要预先准备相关的<em>数据</em>到指定的端点缓存. 在将<em>数据</em>写入缓冲区后,用户需
USB初学(一)---USB-HID的初步认识
(正在学习USB,刚刚学习,HID是最简单的一种,但是也很麻烦)   HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB协议的相关内容。   USB设备描述符-概述 当插入USB设备后,<em>主机</em>会向设备请求各种描述符来识别设备。那什么是设备描述符呢? Descriptor即描述符,是一个完整的<em>数据</em>结构,可以通过C语言等编程实现,并存储在USB设备中,
USB与BT HID reports描述符实践与抓包分析
文章内容提示 这篇文章主要说明如何获取与查看USB和BLE HoGP HID设备报告描述符,如何根据获取的描述符读懂<em>report</em>。然后说明了可以使用<em>hid</em>rd-convert工具,来如何根据hex报告描述符转化得到C语言格式的描述符,这对于我们编码是有意义的。 其中,还截取了USB 逻辑分析仪,Wireshark等工具来查看input <em>report</em>。 如何看懂HID <em>report</em> de
STM32 HID复合设备(3 hid),PC端set_idle后返回stallpid错误解决
使用STM32的固件库进行USB-HID组合设备进行开发,3个HID接口。通过bus hound 来抓包分析发现 PC 发送<em>set</em> idle<em>命令</em>下去后,从设备没有响应,所以PC变为stall状态。通过分析源代码和HID协议,修补漏洞之后可以在任何电脑上枚举成功。里面有具体的参考文件及修改好的代码,有什么问题欢迎咨询我。谢谢。
HID用作鼠标的报告描述符解析
const uint8_t HID_ReportDescriptor[] = { USAGE_PAGE(Generic Desktop)             //全局项目,用途页用作通用桌面 USAGE (Mouse)                                   //局部项目,说明接下来的应用集合用途用作鼠标 COLLECTION (Application)   ...
USB HID 读写 STM32 数据失败主要原因分析
USB HID 读写 STM32 <em>数据</em>失败主要原因分析 主要原因是没有按照报告描述符中规定的格式和字节数进行传输。 需特别注意的是如果在报告描述符中使用了 REPORT_ID 则 USB 发送<em>数据</em>缓冲区第一个字节必须为 REPORT_ID 以告知系统该<em>数据</em>属于哪个 ID。 下位机在上传<em>数据</em>时要按照报告描述符中规定的字节个数进行传输(假如为64字节)。譬如,下位机一次只有10个字节要发送给<em>主机</em>,放进发
STM32 自定义HID USB设备的实现
最近需要使用STM32开发一个设备通过HID协议与<em>主机</em>通信,于是开始学习USB,发现USB这个体系实在太庞大了,直接看USB的例程根本看不懂,完全找不到突破口,最后在网上找到一本不错的书《圈圈教你玩USB》,这本书能够很好地带你入门。枚举过程,请求,令牌,<em>数据</em>包,端点,描述符,这些知识都讲的很清楚,只有清楚了这些,再去看代码就能明白是<em>怎么</em>回事了。 接下来总结一个我个人的理解:对于HID设备,ST...
c#收发数据给USB HID
C#和USB HID进行通讯,实现发送、接收<em>数据</em>主要是通过两个函数实现的FileStream.Write(...)(发送<em>数据</em>)、FileStream.Read(...)(接收<em>数据</em>)。Write和Read是同步,BeginWrite和BeginRead是异步。 或者是c++的库函数WriteFile()、ReadFile(),在库kernel32.dll中。(但是我的项目发现WriteFile()
HID读下位数据丢失问题
PCR项目中,上位机采用异步
USB HID类命令(请求)与常见设备类别
 HID设备类特定的<em>命令</em>(请求)有6个,它们分别是Get_Report、Get_Idle、Get_Protocol、Set_Report、Set_Idle和Set_Protocol。  HID类请求(<em>命令</em>)<em>数据</em>包格式如表10所示:表9、HID类请求(<em>命令</em>)包格式偏移量域大小说明0bmRequestType1HID设备类请求特性如下:位7:0=从USB HOST到USB设备1=从USB设备到USB ...
Windows下开发HID设备主机程序流程 --HID上位机开发必备(自己总结)
http://blog.csdn.net/pony_maggie/article/details/5838171
STM32例程之USB HID双向数据传输(转)
程序功能 将STM32的USB枚举为HID设备。 STM32使用3个端点,端点0用于枚举用,端点1和2用于<em>数据</em>的发送和接收。 端点长度为64,也就是单次最多可以传输64个字节<em>数据</em>。 STM32获取上位机下发的<em>数据</em>并将该<em>数据</em>通过USB原样返回,同时将<em>数据</em>打印输出。 上位机程序通过调用windows的API实现对HID设备的读写控制。 USB接口原理图:
STM32配置CH375B成HID Host模式读取自定义HID设备的数据 ——STM32端口初始化
最近产品需要一个USB<em>主机</em>测试治具,所以需要做一个USB HOST去读取HID设备的<em>数据</em>,由于以前也没做过USB方面的项目,对这一块也不是很熟悉,因此遇到了很多困难,所幸的是经过两天半的努力,最终完成了CH375B的调试。不多废话,先上一张我调试的MCU管脚分配图   详细的代码如下: #include "bsp_init.h" Sys_Param_Def SysParam
STM32f103做HID时某些电脑枚举不成功,修改库后可以成功
使用STM32的库进行USB-HID开发时,会出现某些电脑枚举不出设备的情况,通过bus hound 来抓包分析会出现 PC 发送<em>set</em> idle<em>命令</em>下去后,从设备没有响应,所以PC变为stall状态,之后枚举失败。通过分析源代码和HID协议,找到问题所在,修补漏洞之后可以在任何电脑上枚举成功。 可以对比库中的源代码,可以找到修改的地方。
移植STM32固件库用于HID双向通信
USB的应用中HID类是比较常见的方式。通过修改STM32 USB固件库V4.0的JOYSTICK应用,我们实现一个双向USB通信。 一、移植 使用STM32源程序为点亮LED灯程序。 首先将USB固件库中有用的函数复制到源函数中,建立LIB文件夹其中放入USB2.0协议函数 建立CFG文件夹放入USB应用函数 将两个文件夹都放到源工程目录下将文件添加进来,设置好
自定义HID设备读写(包括上位机和下位机源代码,《圈圈教你学USB》)
用户自定义HID设备读写(包括上位机和下位机源代码,《圈圈教你学USB》),基于MCU + PDIUSBD12控制器实验,发送自定义HID设备<em>数据</em>,上位机读写HID<em>数据</em>
USB自定义HID设备实现-STM32
该文档使用USB固件库,在其基础上进行了自己的定制,完成了一个USB-HID设备,首先是<em>usb</em>_desc.c文件,里面存放了<em>usb</em>各种描述符的存在 #include &quot;<em>usb</em>_desc.h&quot;   //<em>usb</em>标准设备描述符 const u8 DinkUsbDeviceDescriptor[DINK_USB_SIZ_DEVICE_DESC] = {       USB_DEVICE_DES...
STM32F103系列USB的学习过程及使用心得(二)(USB HID协议篇)
在熟悉USB的协议后,感觉能自己做出些东西的就是HID协议了,因为HID的设备对于上位机开发容易很多,不用涉及各个操作系统和USB主设备的等等知识。按照HID协议写好的下位机程序,在<em>stm32</em>的芯片上跑起来,电脑就会识别出来的。 而且ST官方有个测试HID设备的Windows小软件,也很方便,省的自己开发上位机了o(∩_∩)o 1、对HID设备的理解 (1)对于<em>stm32</em>的HID设备编程,最
自定义 HID 设备的实现――下位机
最近在做一个投票系统的上位机。虽然是上位机,但还是要弄清楚下位机与自己的接口――HID。因为windows下已经有一个<em>usb</em>监听程序――USB HOUND。所以,我选择先写好下位机的程序,成功发送<em>数据</em>后,再进行上位机程序的编写。下位机程序,重点在于HID设备的描述符配置。什么是描述符?HID 设备, |– 通过设备描述符来标识自己的设备信息,如设备ID、厂商名称、版本、配置数量等; |– 通过配置描述符集合来标识自己的配置信
USB/HID设备报告描述符详解
概述: 报告在这里意思是<em>数据</em>传输(data transfer),而报告描述符是对这些传输的<em>数据</em>作用途(usage)上的说明。 USB通讯协议的规范是以1ms产生一个USB帧(frame),USB设备可以每一个帧中发送和接收一个交换(transaction)。交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口中有效的<em>数据</em>。在这里,传输和报告的意思相类似。传输方式有四种,
STM32高级教程之USB HID双向数据传输
程序功能: 1,将STM32的USB枚举为HID设备。 2,STM32使用3个端点,端点0用于枚举用,端点1和2用于<em>数据</em>的发送和接收。 3,端点长度为64,也就是单次最多可以传输64个字节<em>数据</em>。 4,STM32获取上位机下发的<em>数据</em>并将该<em>数据</em>通过USB原样返回,同时将<em>数据</em>打印输出。 5,上位机程序通过调用windows的API实现对HID设备的读写控制。 原理图:   说明:
基于STM32的USB枚举过程学习笔记(三)
上一篇介绍到了<em>主机</em>上电复位USB设备,在控制传输的建立过程,发送了8个字节的<em>数据</em>给设备,这8个字节为0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00,该请求为USB标准设备请求中的GET_DESCRIPTOR请求。0x80表示标准设备请求,<em>数据</em>方向是设备到<em>主机</em>。0x60表示请求类型GET_DESCRIPTOR。0x01表示描述符类型是设备描述符。0x40表示描述符长度
安卓与单片机进行usb hid通信
安卓USB_HID通信文档 因为一直在研究<em>stm32</em>,需要用到<em>usb</em> <em>hid</em>通信,就研究了安卓与<em>stm32</em>进行<em>usb</em> <em>hid</em>通信,目前已经能进行正常通信,我这里只跟大家说一下通信时需要注意的问题。 <em>usb</em> <em>hid</em>通信 单次最多发送64字节,这64字节中:第一个字节代表了<em>数据</em>长度,所以 这就相当于单次最多发送63字节,这里要注意的是编写发送程序时,第一字节要写<em>数据</em>包长度。 下面主要讲解一下
usb鼠标_HID报告描述符的实现(11)
开发环境:win7 开发板    :51单片机 + pdi<em>usb</em>d12 芯片 前言:     在上一节的末尾,设备接收到的<em>数据</em>:0x81 0x06 0x00 0x22 0x00 0x00 0x74 0x00         0x81 表示:<em>数据</em>传输方向为 设备到<em>主机</em>,该<em>命令</em>请求是发送到接口中的。                 详情请看:<em>usb</em>鼠标_USB标准请求之设备描述符(5
USB HID 下位机向上位机发送程序
HID 通信下位机给上位机传送<em>数据</em>
STM32 F103C8t6 USB HID 收发实例
<em>stm32</em> <em>usb</em> <em>hid</em> ,将收到的报文原文发回。VID 0x6493 PID 0xa7a0
基于stm32的自定义HID设备开发与上位机通讯实现
现在主流的安卓手机<em>数据</em>连接线,Mini-<em>usb</em>、Micro-<em>usb</em>,Type-c,产品追随主流,非联网设备,摒弃ST-LINK、JLINK,直接用<em>usb</em><em>数据</em>传输升级。主要实现与HID设备的通信即人机交互。本文主要介绍了HID设备的下位机通信连接与上位机设备识别。 下位机: 1.准备工作,所需文件,如下图所示: 2.环境搭建:建立keil开发环境文件,并添加相应的源文件,不作详细解释。  ...
USB HID类命令
转载自百合电子工作室 HID设备类特定的<em>命令</em>(请求)有6个,它们分别是Get_Report、Get_Idle、Get_Protocol、Set_Report、Set_Idle和Set_Protocol。   HID类请求(<em>命令</em>)<em>数据</em>包格式如表8所示: 表9、HID类请求(<em>命令</em>)包格式 偏移量 域 大小 说明 0
STM32例程之USB HID双向数据传输(源码下载)
1.   将STM32的USB枚举为HID设备。 2.   STM32使用3个端点,端点0用于枚举用,端点1和2用于<em>数据</em>的发送和接收。 3.   端点长度为64,也就是单次最多可以传输64个字节<em>数据</em>。 4.   STM32获取上位机下发的<em>数据</em>并将该<em>数据</em>通过USB原样返回,同时将<em>数据</em>打印输出。 5.   上位机程序通过调用windows的API实现对HID设备的读写控制。 USB接口原理图
STM32——USB详细使用说明 附件HID的双向通信
STM32——USB详细使用说明 附件HID的双向通信(一)   (2012-03-08 01:29:40) 转载▼ 标签:  杂谈 分类: USB 说明:使用的是STM32F103ZET6 硬件原理图 在开始枚举设备的一些初始化 void bsp_USBInit(void) {     G
STM32——USB详细使用说明 附件HID的双向通信(一)
  说明:使用的是STM32F103ZET6 硬件原理图 在开始枚举设备的一些初始化 void bsp_USBInit(void) {     GPIO_InitTypeDef  GPIO_InitStructure;          RCC_APB2PeriphClockCmd(RCC_USB_PULL_UP, ENABL...
STM32 HAL库学习(六)USB识别成Custom HID通信
一、STM32F070 USB基础知识了解: STM32F070 USB采用USB 2.0规范,时钟频率为48MHZ,有一个专用的USB<em>数据</em>存储区,大小为1024字节;支持16个单向传输端点、8个双向传输端点 USB外设模块构成图: USB物理接口模块: USB_DM、USB_DP —— <em>数据</em>正、负信号 Analog Transceiver —— 模拟收发器 Embedded pu...
STM32 keyboard USB键盘功能的实现
下面编写下USB键盘的程序,依然在CustomHID工程上修改。 依旧最先修改的是<em>usb</em>_desc.c文件。我们从设备描述符开始讲述。 设备描述符需要修改下bMaxPacketSize(最大包长度)域为0x08,因为被本次的工程最大通讯长度就是8字节,正好符合USB规范,所以这里改成0x08,还要注意在<em>usb</em>_prop.c的DEVICE_PROP Device_Property结构体里注册的最
STM32 JoystickMouse USB游戏杆鼠标的实现
本次程序的实现是基于上次CustomHID修稿过来的,工程的架构就不在介绍,这里主要介绍下,如何修改。 首先当然是<em>usb</em>_desc.c的一些描述符了。 设备描述符需要修改下bMaxPacketSize(最大包长度)为0x08个字节,因为该工程通讯的长度为4字节,根据USB洗衣规范,最大包长度只能是8、16、64等,所以这里选择0x08,这里要注意,改为0x08时,在<em>usb</em>_prop.c
使用LabVIEW开发STM32 USB HID驱动和上位机软件成功
一直以来,USB驱动和通信开发是比较复杂的事情,一般使用C++开发,需要熟悉windows系统下的驱动开发。 STM32是近年流行的ARM Cortex-M3芯片,已经集成了USB外设,所以硬件很简单,同时ST公司也提供了USB例程,其中也包括USB HID例程,但只有一个端点,<em>数据</em>只收不发,不是双向的USB通信。 最近以来,我一直在研究STM32的USB HID双向通信,并使用LabVI
STM32学习笔记之USB数据接收和发送流程分析
既然学习了USB,那就必须的搞懂USB设备与USB<em>主机</em><em>数据</em>是<em>怎么</em>通讯的。这里主要讲设备端,因为我们的代码是做USB设备用的。 我们需要必须要定义了USB中断。起始在STM32的中断向量表中给USB两个中断,我们可以在<em>stm32</em>f10x.h中找到这两个中断: USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priori
HID报告描述符解析_笔记
要了解报告描述符,需要两份资料:《device class definition for human interface device (HID)》, 《Universal Serial Bus HID Usage Tables》 例如:0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x05表示前缀,0x01为<em>数据</em>部分 0x05转换成二进制,
STM32——USB详细使用说明 附件HID的双向通信
转自:http://blog.sina.com.cn/s/blog_98ee3a930100wn6m.html 说明:使用的是STM32F103ZET6 硬件原理图 在开始枚举设备的一些初始化 void bsp_USBInit(void) {     GPIO_InitTypeDef  GPIO_InitStructure;          RCC
基于STM32处理器的USB HID模拟鼠标键盘(1) - USB HID基础
HID是Human Interface Device的缩写,HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。交换的<em>数据</em>存储在称为报表或报告(<em>report</em>)的结构内,设备的固件必须支持HID报表的格式。<em>主机</em>在控制与中断传输中传送与要求报表,来传送与接收<em>数据</em>。报表的格式非常有弹性,可以处理任何类别的<em>数据</em>。设备除了
从头开始调试stm32 USB HID
<em>stm32</em> <em>usb</em> <em>hid</em>调试过程
stm32 USB hid设备与PC进行双向数据传输时PC不识别USB设备
<em>stm32</em> USB <em>hid</em>设备与PC进行双向<em>数据</em>传输时PC不识别USB设备,或者开始时识别,拔出后再插入就没有反应了,就连鼠标U盘也没有反应。 我的问题是,我安装了VMware虚拟机,并进行USB设备的分配,使得虚拟机系统也识别USB设备。 所以,解决问题的办法如下: 在中选择禁用。 然后把下面的VMware Workstation Server 也禁用了。重启电脑就OK了。
USB HID 鼠标信息解析
鼠标发送给PC的<em>数据</em>每次4个字节 BYTE1 BYTE2 BYTE3 BYTE4 定义分别是: BYTE1 --        |--bit7:   1   表示   Y   坐标的变化量超出-256   ~   255的范围,0表示没有溢出          |--bit6:   1   表示   X   坐标的变化量超出-256   ~   255的范围,0表示没有溢出      
Windows下读取USB Hid设备数据的经验总结
ReadFile()总是返回false的问题
USB虚拟串口+HID键盘复合设备开发详解(VCP+HID Composite)
一.USB描述符修改 USB描述符包括设备描述符(DeviceDescriptor)、配置描述符(ConfigDescriptor)、HID报告描述符(CustomHID_ReportDescriptor)、字符串描述符。 1.设备描述符--基本固定,不需要<em>怎么</em>修改。一般复合设备和非复合设备要修改bDeviceClass、bDeviceSubClass、bDeviceProtocol这3个的值...
VMware直接使用主机USB HID(包含USB键盘鼠标)的方法
这篇文章是3个网友的文章,不过有些东西我也没有尝试,所以就还是把他们的方法给分别列开了!首先先回答大家的几个疑问:1. 既然我的鼠标都能够在虚拟机系统下面运行起来,还要这个破烂HID干什么?  不一样的,这个是真正的HID,在设备管理器中可以找到它们的设备。并且是以真正的HID驱动来动起来的。我以前就是为了这个而头大脑大:我们公司的一款多媒体鼠标,包含前进、后退、缩小、放大、左滚、右滚,要写驱动,
stm32_usb_HID例程及上位机
程序功能: 1,将STM32的USB枚举为HID设备。 2,STM32使用3个端点,端点0用于枚举用,端点1和2用于<em>数据</em>的发送和接收。 3,端点长度为64,也就是单次最多可以传输64个字节<em>数据</em>。 4,STM32获取上位机下发的<em>数据</em>并将该<em>数据</em>通过USB原样返回,同时将<em>数据</em>打印输出。 5,上位机程序通过调用windows的API实现对HID设备的读写控制。
在Linux 2.6环境下读写HID设备(USB Key)
      Linux 2.6内核中包含了HID驱动,能够自动把USB Key等HID外设识别成“/dev/<em>hid</em>dev0”之类的设备。但是该驱动没有实现write接口,因此无法象Windows平台那样使用 ReadFile和WriteFile来读写HID设备,而只能使用ioctl接口。      网上有各种各样读写HID设备的源代码例子,有的是通过HIDIOCSUSAGE和HIDIOCGUSAG
stm32 hid游戏手柄程序
用USB键盘程序修改成了  USB游戏手柄,是3轴 12按钮的 用手头的STM32F103C8T6最小系统板 测试过  可以用了 USB每次传输5字节  1:x轴 2:y轴 3:滑块 4 :按钮 1234 5 :按钮5678  9  10  11  12 需要修改的地方很多  我就不详细说了 提供一个程序工程下载的链接 https://pan.baidu.com/s/1hLlR...
USB_HID 报告描述符生成工具
USB_HID 报告描述符生成工具,在写HID报告描述符的时候能用
STM32完成USB_Keyboard的实验总结
STM32,USB_Keyboard,实现简单按键功能.
custom HID代码分析(一) 报文描述符
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END = { 0x06, 0xFF, 0x00, /* USAGE_PAGE (Vendor Page: 0xFF00) */ 0x09, 0x01, /* USAGE
STM32 USB HID设备驱动分析
STM32 USB设备驱动分析 DanielLee 2014-9-29 一、USB的设备描述符分析 USB的设备描述符用以下结构定义: Device_Property DEVICE_PROP Device_Property = { CustomHID_init, CustomHID_Re<em>set</em>, CustomHID_Status_In, CustomHID_Status_Out
基于STM32的USB枚举过程学习笔记
之前使用ST官方的库以及网络的资料,完成了使用USB HID类进行STM32和PC机的通讯。由于其他原因并没有深入的分析,虽然实现了功能,但是关于USB设备的枚举,以及具体的通讯方式都没有清晰的概念,所以现在回头重新学习USB相关知识。主要参考资料是《圈圈教你玩USB》、USB枚举过程图解,ST官方的USB HID例程。 一,USB<em>数据</em>包     1.    USB<em>数据</em>包分类
USB-HID 中断传输
   这段时间学习LPC11Uxx系列的USB-HID,研究官方的USB库文件和HID文件发现对于<em>hid</em>user里面的GetReport和SetReport只在端点0的响应函数中有调用,采用USB抓包工具 Bus Hound发送指令时也可发现,如果选择HID-Compliant Device,只能发送控制类的指令,而对于实际的<em>数据</em>传输需要另外配置端点进行传输。    USB 的传输事务类型可在端...
usb hid 报告描述符详解
(未读) 概述: 报告在这里意思是<em>数据</em>传输(data transfer),而报告描述符是对这些传输的<em>数据</em>作用途(usage)上的说明。 USB通讯协议的规范是以1ms产生一个USB帧(frame),USB设备可以每一个帧中发送和接收一个交换(transaction)。交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口中有效的<em>数据</em>。在这里,传输和报
usb2-键盘里的hid
键盘设备和<em>主机</em>的<em>hid</em>规范 [cpp] view plain copy       /*键盘发送给PC的<em>数据</em>每次8个字节       data0 data1 data2 data3 data4 data5 data6 data7        定义分别是:       data0 --       |--bit0: Left Control是否按下,按下为1     
HID描述符
1、<em>hid</em>设备描述符 USB设备中有一大类就是HID设备,即Human Interface Devices,人机接口设备。这类设备包括鼠标、键盘等,主要用于人与计算机进行交互。 它是USB协议最早支持的一种设备类。HID设备可以作为低速、 全速、高速设备用。由于HID设备要求用户输入能得到及时响应,故其传输方式通常采用中断方式。 在USB协议中,HID设备的定义放置在接口描述符中,USB的
STM32F103C8T6的USB HID复合设备的实现要点
1,可从官网下载STM32_USB-FS-Device_Lib_V4.0,里面有Custom_HID例子可从Custom_HID修改得到。时刻记住“自己是STM32F10X_MD系列”以及“自己不是官方demo板”即可将无用的代码去掉,譬如去掉ADC等等。2,需要SystemInit();配置为72MHz,否则无法工作,USB是工作在12MHz。3,如果D+直接上拉到3.3V,把demo <em>usb</em>_...
USB HID协议中几个关键概念的理解
USB HID描述符的体系结构如下:在Interface描述符中,HID设备的:    1. bInterfaceClass值一定是3(HID Class);    2. bInterfaceSubClass的值可能为:0 (No Subclass), 1(Boot Interface Class)或者2-255(Reserved);    3. bInterfaceProtocol的值可能为:0
在虚拟机Vmware中使用HID设备(如USB免驱键盘)
在Vmware中使用USB键盘, USB键盘可以正常输入, 但是在虚拟系统的设备管理器中仍然只显示一个PS/2键盘,插上USB键盘后, 也没有出现新硬件提示. USB键盘应该显示为&quot;HID Keyboard Device&quot;.解决方法:编辑虚拟机的配置文件.vmx, 在 <em>usb</em>:0.present = &quot;TRUE&quot; 之前添加如下两行:<em>usb</em>.generic.allowHID = &quot;TRUE&quot;<em>usb</em>....
usb命令进行处理时,不是我们的命令,需要发空包
转自:http://www.cnblogs.com/snake-hand/p/3181667.html s3c6410 linux gadget <em>hid</em>驱动调了我一个多星期了今天终于搞定了,来跟大家分享下. 上一个星期纠结了一个星期的寄存器,试了N次,不管把3.1和3.7的<em>hid</em>驱动移植过来也是一样的情况,所以这星期直接从问题本身着手一个个找,一个个对比,终于解决了。 我用的内核是lin
STM32 USB HID 自定义设备 bulk 传输
STM32 USB HID 自定义设备 bulk 传输ST(意法半导体公司)为STM32系列处理器编写了外设USB的库,并提供了很好的参考例程,本文就是参考ST提供的例程,在STM32F4 discovery板子上实现<em>usb</em> bulk传输。Host端是在linux平台上利用lib<em>usb</em>库函数写的读写USB应用。本次实现在STM32 USB例程中的Device HID 鼠标例程基础上添加bulk传输端
STM32——USB详细使用说明 附件HID的双向通信(一)
说明:使用的是STM32F103ZET6 硬件原理图 在开始枚举设备的一些初始化 void bsp_USBInit(void) {     GPIO_InitTypeDef  GPIO_InitStructure;          RCC_APB2PeriphClockCmd(RCC_USB_PULL_UP, ENABLE);
STM32自定义HID设备块传输+libusb上位机程序
STM32 自定义HID 设备, 通过快传输接收上位机发来的<em>数据</em>。上位机使用Lib<em>usb</em>库函数实现,接口简单。程序中添加了上位机接收<em>数据</em>的接口,USB 设备端的IN 接口也做好了,用户只要将需要发送给HOST的<em>数据</em>添加进去就可以了。博文地址: http://blog.csdn.net/chengwenyang/article/details/51039741
STM32USB的枚举过程简介
STM32的USB枚举过程介绍     之前的说明:     文中大量引用网上资料,在文后已给出资料的引用说明。文件涉及到的USB各种传输包各个位的含义以及USB标准设备请求的含义都没有做说明,推荐看《圈圈教你玩USB》里面有详细的说明
基于windows7的usb多点触控设备
前段时间,朋友要做一个windows7的<em>usb</em>多点触控设备,我就帮了个小忙,负责搞定了设备 与PC通信相关的这块。整个项目我做了两个东西,一是下位机的<em>usb</em>设备描述符,一个是上位机的测试软件,下面我会把这两个过程都写一下,跟大家共享!!!
USB那点事3 -使用端口2作为custom HID的传输
USB custom HID例子中是使用了端口1作为通信,那么现在我使用端口2作为通信端了,该如何修改呢?如下所示: 首先修改:<em>usb</em>_desc.c中的const u8 CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC]这个字符数组里面的内容:如下红色的为修改部分,未列出的不用修改:     USB_ENDPOINT_DESCRIPT
STM32F103C8T6 USB HID 源码
使用STM32F103自带的USB接口 制作成一个免驱的HID设备 可以用来做一些接口转接工具 如USB 转 TTL /如USB小键盘 等等;看个人发挥啦。我做了USB转IIC啦 好用。
STM32 USB HID 组合设备(配置多个接口)
USB Compound Device,USB复合设备 USB Composite Device,USB组合设备   USB Composite Device,不内嵌Hub,几个设备的PID和VID都是相同。   此文均在STM32F767IGTx已实现普通custom HID工程上做解释。 //<em>usb</em>配置描述符 /* USB CUSTOM_HID device Configurati...
STM32F103C8T6 USB HID下位机/MPU6050状态数据解算 /毕业设计
STM32F103C8T6 USB HID下位机/MPU6050状态<em>数据</em>解算 /毕业设计 本人毕业设计,芯片用的是STM32F103C8T6 与上位机通信方式用的是USB HID方式,姿态传感器用的是MPU6050,姿态解算算法是四元数求欧拉角 。如有需要,可供参考。下载地址如下:https://download.csdn.net/download/zlc101010/10498776...
usb hid上位机和下位机程序
两个程序,vc上位机和<em>stm32</em>下位机 <em>usb</em><em>hid</em> 实现<em>数据</em>双向收发,测试通过 直接可以使用!
STM32模拟USB多点触控屏
STM32模拟USB多点触控屏 开发准备 STM32的USB官方例程库JoyStickMouse STM32F103RC Windows7 代码修改 1.<em>usb</em>_pwr.c RESULT PowerOn(void) { u16 wRegVal; //USB_Cable_Config(ENABLE);//这里由于硬件问题用不到,...
使用stm32F10XX芯片开发的USB HID 双向通信
STM32 USB HID开发实例,实现USB双向通信。在STM32 ARM平台上实现USB与PC端得通信(IC为STM32F10XX系列)。本文提供一个例程(已测试通过),不用了解任何USB协议(当然了解USB相关协议或描述表的意义是很必要的),在此例程上,稍作修改,即可开展你的项目或学习或进行产品开发。在ST中我们可以获得了USB相关的一个HID例程,但是官方例子中只是用到2个端点。<em>数据</em>只收不...
基于STM32处理器的USB HID模拟鼠标键盘(2) - 实现键盘鼠标功能
由于在报告描述符中使用了两个Report ID,分别是0x01和0x02,前者是键盘的报告描述符的报告ID,后者是鼠标的报告ID,HID的键盘和鼠标发送的<em>数据</em>格式参考文档: http://linfengdu.blog.163.com/blog/static/1177107320122296942641/ 根据文档编写键盘和鼠标的发送函数如下: typedef enum { KEY
HID 报告描述符
参考文献:HID Usage Tables Main Item共有5个:Input、Output、Feature、Collection和End Collection,其中Input、Output和Feature会产生实际的<em>数据</em>域并附带说明操作特性。 Global Item:可对其后的所有主项目产生的<em>数据</em>域作用,直到出现一个新的Global Item为止。 Local Item:只对其后的一个...
提高USB HID设备速率的方法——基于C8051F380
       项目采用C8051F380的USB2.0接口实现HID设备(配置为Game Controller)。利用端点1发送<em>数据</em>,每包12个字节。经测试,即使设备什么也不做,仅在main函数的while(1)循环中持续发送<em>数据</em>,最快<em>数据</em>也仅达到5ms一包。后查阅资料,得到了如下结论,提高了发送速率(参考资料见后面的几幅图片):        1、USB HID设备上报<em>数据</em>采用的端点1必须配置为...
HID从设备连接电脑获取描述符分析
Bus Hound 6.01 capture on Windows Vista (x64). Complements of www.perisoft.net   Device - Device ID (followed by the endpoint for USB devices)             (18) Generic USB Hub             (29)
hid descriptor tool USB 描述符生成工具
<em>hid</em> descriptor tool USB 描述符生成工具
C# 访问USB(HID)设备方法一
这几天捣腾C# 访问USB(HID)设备的方式,看了好多资料,发现有两种方式访问USB设备,废话少说直接看核心代码  h = Win32Wrapper.SetupDiGetClassDevs(IntPtr.Zero, DevEnum, IntPtr.Zero, (int)(Win32Wrapper.DIGCF.DIGCF_PRESENT | Win32Wrapper.DIGCF.DIGCF_AL
使用STM32 USB HID功能模拟键盘
使用STM32 USB HID功能模拟键盘 程序使用的是外部中断触发发送模拟按键,(按下F12, 4秒后松开),方式可以自己修改触 发,和按下的按键,以及是直接松开按键还是稍后松开按键
【STM32】【USB】使用STM32CubeMx配置HID模式,电脑无法识别USB设备的问题分析
使用STM32CubeMx工具配置STM32F103ZE芯片,在HID模式下,电脑不能识别到USB设备。经分析跟DP线有关。 硬件板的设计是 STM32F103ZE芯片+FE2_QFP48(USB hub芯片)。 其中: PA11--&amp;gt;USB_DM PA12--&amp;gt;USB_DP PG8--&amp;gt;USB_CTRL(CTRL=1时DP悬空,CTRL=0时DP被上拉) 若想使电脑...
上传STM32的USB上位机(VC++源码),动态库(VC++源码),STM32端原代码,驱动程序,全套源码
作者:huxiaoping 转自:http://www.amobbs.com/forum.php?mod=viewthread&tid=3776746 前些时间玩了把STM32,原来想做一个USB接口的单片机,FLASH编程器,感觉不错,但这段时间停了,特发上来和大家分享 代码涉及USB上位机(VC++源码),动态库(VC++源码),STM32下位机, 如果正在学习USB相
STM32 USB HID 的通信 源程序(上下位机源码)全套源代码
STM32 USB HID 的通信 源程序(上下位机源码)全套源代码
自定义USB-HID设备_笔记
参考圈圈教程: 在USB键盘的描述符基础上做如下修改: 1、Device Descriptor :修改PID/VID ; 2、Configuration Descriptor :修改 Interface Descriptor中的 bInterfaceSubClass 字段和bInterfaceProtocol字段改为 0 ;(自定义HID不使用子类和协议) 3、HID Report Des
一个无驱型USB加密锁的HID通信分析
【讨论说明】 前段时间从朋友处得来一套他做生意淘汰下来的软件,带有2个加 密狗,上周末就仔细学习研究了一下,深感资料匮乏。。。整整 两天时间都贡献给这个狗了。本文主要从HID通信的角度来书写, 没有任何技术含量,目的是做为学习总结记录之用,毕竟这花了 我一个周末整整两天的时间,总要写点什么出来。内容浅陋,不 值打狗高手们一提。。。。。。 我之前对加密狗了解很少,这篇帖子仅以我手中的这
简单stm32的USB HID 鼠标演示程序,多快好省使用cube
【本文99%转载】参考文章列表:http://www.mamicode.com/info-detail-1799831.html https://blog.csdn.net/luohsh1/article/details/8645471 【这篇文章排版更好】https://blog.csdn.net/xqhrs232/article/details/77740508 软件平台:最新版本也可,...
基于stm32的HID设备的bootloader设计
基于<em>stm32</em>的HID设备的自动识别以及bootloader的设计与跳转,本程序配合HID设备的上位机通讯软件使用,所有代码通过测试,都是ok的。
Android USB Host与USB Hid设备的通信(打印机和android通信,通过USB)
近期一直在做Android USB Host与USB Hid设备的通信,要被搞死了。资料太少了,有空的时候要总结一下用到的相关知识 x=&amp;amp;amp;amp;nbsp;dfrac−b&amp;amp;amp;amp;nbsp;pm&amp;amp;amp;amp;nbsp;sqrtb2−4ac2ax=&amp;amp;amp;amp;nbsp;dfrac−b&amp;amp;amp;amp;nbsp;pm&amp;amp;amp;amp;nbsp;sqrtb2−4ac2a
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
正则表达式入门经典下载
[正则表达式入门经典].(美)瓦特.扫描版[正则表达式入门经典].(美)瓦特.扫描版 相关下载链接:[url=//download.csdn.net/download/rangers20052753/6254243?utm_source=bbsseo]//download.csdn.net/download/rangers20052753/6254243?utm_source=bbsseo[/url]
arm开发指南与linux开发下载
详细讲述了arm开发的详细过程,具有很大的参考价值 相关下载链接:[url=//download.csdn.net/download/yin241/1957507?utm_source=bbsseo]//download.csdn.net/download/yin241/1957507?utm_source=bbsseo[/url]
EDA技术与FPGA课件 第四讲下载
我们用的教材是 清华大学出版社 潘松编著 相关下载链接:[url=//download.csdn.net/download/luoyajun/2232299?utm_source=bbsseo]//download.csdn.net/download/luoyajun/2232299?utm_source=bbsseo[/url]
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 该怎么学习python 产品经理该怎么学习
我们是很有底线的