社区
驱动开发/核心开发
帖子详情
USB鼠标枚举成功后,主机仍然不断请求设备描述符,设置地址等操作
nhtzhanshi
2015-01-02 01:59:05
最近学习USB技术,但是发现了一个奇怪的现象,USB鼠标成功枚举后,主机已经能够看到相关的鼠标驱动已经加载,但是此时主机仍然不断的向设备请求设备描述符,设置地址等操作。有谁也遇到过类似的问题吗?谢谢。
...全文
645
3
打赏
收藏
USB鼠标枚举成功后,主机仍然不断请求设备描述符,设置地址等操作
最近学习USB技术,但是发现了一个奇怪的现象,USB鼠标成功枚举后,主机已经能够看到相关的鼠标驱动已经加载,但是此时主机仍然不断的向设备请求设备描述符,设置地址等操作。有谁也遇到过类似的问题吗?谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
曹大夯
2015-01-06
打赏
举报
回复
引用 楼主 NHTzhanshi 的回复:
USB鼠标成功枚举后
可能鼠标没有真正枚举成功。或者你的设备连接不稳定。
Simality
2015-01-02
打赏
举报
回复
BUSHOUND抓一下标准鼠标的包对比一下。不行再发一下你的report descriptor内容。
圈圈教你玩
USB
/* 也是从其他地方搞过来的,花了不少积分,我就1分奉献了吧,绝对是好书~ */ 第1章
USB
概述及协议基础 1.1
USB
是什么 1.2
USB
的特点 1.3
USB
的拓扑结构 1.4
USB
的电气特性 1.5
USB
的线缆、插头及插座 1.6
USB
的插入检测机制 1.7
USB
的
描述符
及其之间的关系 1.8
USB
设备
的
枚举
过程 1.9
USB
的包结构及传输过程 1.9.1
USB
的包结构及包的分类 1.9.2令牌包 1.9.3数据包 1.9.4握手包 1.9.5特殊包 1.9.6如何处理数据包 1.10
USB
的四种传输类型 1.10.1
USB
事务 1.10.2批量传输 1.10.3中断传输 1.10.4等时传输 1.10.5控制传输 1.10.6端点类型与传输类型的关系 1.10.7传输类型与端点支持的最大包长 1.11本章小结 第2章硬件系统设计 2.1方案及芯片的选定 2.2D12引脚功能说明 2.3D12与AT89S52的连接 2.4串口部分电路 2.5按键部分 2.6指示灯部分 2.7IDE接口部分 2.8单片机部分 2.9元件安装 2.10电路调试 2.11测试程序的编写和调试 2.11.1建立一个工程 2.11.2为工程添加源文件 2.11.3KEIL工具栏及仿真介绍 2.11.4按键驱动的编写 2.11.5串口驱动的编写 2.11.6PDI
USB
Dl2读写函数及读ID的实现 2.12本章小结 第3章
USB
鼠标
的实现 3.1
USB
鼠标
工程的建立 3.2
USB
的断开与连接 3.3
USB
中断的处理 3.4读取从
主机
发送到端点O的数据 3.5
USB
标准
请求
3.5.1
USB
标准
设备
请求
的结构 3.5.2GET_DESCRIPTOR
请求
3.5.3SET_ADDRESS
请求
3.5.4SETCONFIGURATION
请求
3.6
设备
描述符
的实现 3.7
设备
描述符
的返回 3.8
设置
地址
请求
的处理 3.9配置
描述符
集合的结构 3.9.1配置
描述符
的结构 3.9.2接口
描述符
的结构 3.9.3端点
描述符
的结构 3.9.4HID
描述符
的结构 3.10配置
描述符
集合的实现以及返回 3.11字符串及语言ID
请求
的实现 3.12
设置
配置
请求
的实现 3.13报告
描述符
的结构及实现 3.14报告的返回 3.15BusHound工具的简介 3.16本章小结 第4章
USB
键盘的实现 4.1
USB
键盘工程的建立 4.2
设备
描述符
的实现 4.3配置
描述符
集合的实现 4.3.1配置
描述符
4.3.2接口
描述符
4.3.3HID
描述符
_ 4.3.4端点
描述符
4.4字符串
描述符
4.5报告
描述符
4.6输入和输出报告的实现 4.7
USB
键盘实例的测试 4.8再谈
USB
HID的报告
描述符
4.9带
鼠标
功能的
USB
键盘(方法一) 4.10带
鼠标
功能的
USB
键盘(方法二) 4.11多媒体
USB
键盘 4.12本章小结 第5章用户自定义的
USB
HID备 5.1My
Usb
Hid工程的建立 5.2
描述符
的修改 5.3报告的实现 5.4对用户自定义的
USB
HID
设备
的访问 5.5访问HID
设备
时所用到的相关函数 5.5.1 获取HID
设备
的接口类GUID的函数 5.5.2获取指定类的所有
设备
信息集合的函数 5.5.3从
设备
信息集合中获取一个
设备
接口信息的函数 5.5.4获取指定
设备
接口详细信息的函数 5.5.5打开
设备
的函数 5.5.6获取HID
设备
属性的函数 5.5.7从
设备
读取数据的函数 5.5.8往
设备
写数据的函数 5.5.9通过控制端点O读取报告的函数 5.5.10通过控制端点O发送报告的函数 5.5.11关闭句柄的函数 5.5.12需要包含的库文件 5.6访问
USB
HID
设备
的上位机软件的实现 5.6.1上位机程序编写的思路 5.6.2查找及打开HID
设备
的代码 5.6.3读输入报告线程的代码 5.6.4写输出报告的代码(发送LED的状态) 5.6.5写输出报告线程的代码 5.6.6线程的创建以及
设备
插拔事件的注册 5.6.7对
设备
状态改变事件的处理 5.7软件界面以及使用方法 5.8本章小结 第6章
USB
转串口 6.1串口家族历史 6.2串口接头的引脚分布及功能 6.3
USB
转串口的实现方法 6.4
设备
描述符
6.5字符串
描述符
…… 第7章
USB
MIDI键盘 第8章U盘 第9章自定义
USB
设备
及驱动开发 第10章
USB
过滤驱动开发 附录第3章实例的完整调试信息 参考文献 后记 ……
圈圈教你玩
USB
(全书)
第一章
USB
概述及协议基础 1 1.1
USB
是什么 1 1.2
USB
的特点 1 1.3
USB
的拓扑结构 2 1.4
USB
的电气特性 5 1.5
USB
的线缆以及插头、插座 5 1.6
USB
的插入检测机制 7 1.7
USB
的
描述符
及其之间的关系 9 1.8
USB
设备
的
枚举
过程 10 1.9
USB
的包结构及传输过程 11 1.9.1
USB
包的结构及包的分类 11 1.9.2 令牌包 13 1.9.3 数据包 14 1.9.4 握手包 14 1.9.5 特殊包 15 1.9.6 如何处理数据包 15 1.10
USB
的四种传输类型 16 1.10.1
USB
事务 16 1.10.2 批量传输 16 1.10.3 中断传输 18 1.10.4 等时传输(同步传输) 19 1.10.5 控制传输 20 1.10.6 端点类型与传输类型的关系 21 1.10.7 传输类型与端点支持的最大包长 21 1.11 本章小结 21 第二章 硬件系统设计 1 2.1 方案以及芯片的选定 1 2.2 D12引脚功能说明 2 2.3 D12与89S52的连接 4 2.4 串口部分电路 6 2.5 按键部分 7 2.6 指示灯部分 7 2.7 IDE接口部分 8 2.8 单片机部分 8 2.9 元件安装 8 2.10 电路调试 11 2.11 测试程序的编写和调试 12 2.11.1 建立一个工程 12 2.11.2 为工程添加源文件 14 2.11.3 KEIL工具栏及仿真介绍 15 2.11.4 按键驱动的编写 18 2.11.5 串口驱动的编写 24 2.11.6 PDI
USB
D12读写函数及读ID的实现 28 2.12 本章小结 33 第三章
USB
鼠标
的实现 1 3.1
USB
鼠标
工程的建立 1 3.2
USB
的断开与连接 1 3.3
USB
中断的处理 4 3.4 读取从
主机
发送到端点0的数据 6 3.5
USB
标准
请求
12 3.5.1
USB
标准
设备
请求
的结构 13 3.5.2 GET_DESCRIPTOR
请求
15 3.5.3 SET_ADDRESS
请求
16 3.5.6 SET_CONFIGURATION
请求
16 3.6
设备
描述符
的实现 17 3.7
设备
描述符
的返回 20 3.8
设置
地址
请求
的处理 30 3.9 配置
描述符
集合的结构 32 3.9.1 配置
描述符
的结构 32 3.9.2 接口
描述符
的结构 33 3.9.3 端点
描述符
的结构 33 3.9.4 HID
描述符
的结构 34 3.10 配置
描述符
集合的实现以及返回 35 3.11 字符串及语言ID
请求
的实现 39 3.12
设置
配置
请求
的实现 45 3.13 报告
描述符
的结构及实现 48 3.14 报告的返回 54 3.15 Bus Hound工具的简介 57 3.16 本章小结 59 第四章
USB
键盘的实现 1 4.1
USB
键盘工程的建立 1 4.2
设备
描述符
的实现 1 4.4 配置
描述符
集合的实现 2 4.4.1 配置
描述符
3 4.4.2 接口
描述符
3 4.4.3 HID
描述符
3 4.4.4 端点描述 3 4.5 字符串
描述符
6 4.6 报告
描述符
6 4.7 输入和输出报告的实现 10 4.8
USB
键盘实例的测试 13 4.9 再谈
USB
HID的报告
描述符
14 4.10 带
鼠标
功能的
USB
键盘(方法一) 16 4.11 带
鼠标
功能的键盘(方法二) 22 4.12 多媒体
USB
键盘 29 4.13 本章小结 34 第五章 用户自定义的
USB
HID
设备
1 5.1 My
Usb
Hid工程的建立 1 5.2
描述符
的修改 1 5.3 报告的实现 3 5.4 对用户自定义的
USB
HID
设备
的访问 5 5.5 访问HID
设备
时所用到的相关函数 5 5.5.1 获取HID
设备
的接口类GUID的函数 5 5.5.2 获取指定类的所有
设备
信息集合的函数 6 5.5.3 从
设备
信息集合中获取一个
设备
接口信息的函数 6 5.5.4 获取指定
设备
接口详细信息的函数 7 5.5.5 打开
设备
的函数 8 5.5.6 获取HID
设备
属性的函数 8 5.5.7 从
设备
读取数据的函数 9 5.5.8 往
设备
写数据的函数 9 5.5.9 通过控制端点0读取报告的函数 10 5.5.10 通过控制端点0发送报告的函数 10 5.5.11 关闭
设备
的函数 10 5.5.12 需要包含的库文件 11 5.6 访问
USB
HID
设备
的上位机软件的实现 11 5
微服务系列第八季-Java中重写、重载及
枚举
微服务应用是分布式开发的主要手段,它很好的解决了高并发等电商平台的问题。微服务系列课程是以Java语言为基础,以SpringCloud+SpringBoot为核心,结合Spring、SpringMVC及MyBatis,通过游戏案例、电商案例,以极简...
F103C8T6_
USB
_CUSTOMHID+MSC.rar
将STM32F103C8T6的CustomHID和MSC
USB
设备
进行复合,EP0用于
枚举
,EP1用于键盘
设备
,EP2用于
鼠标
设备
(支持绝对模式和相对模式),EP3用于MSC
设备
(配有官方demo版本和FAT16版本(默认)),以上全部为双端口。 正常情况下,键鼠
设备
可以共用一个接口,利用报告ID作为前缀,发送不同的report到
主机
上。但是这种情况下,报告
描述符
是写在同一个数组内的,当遇到某些
主机
(如IBM的AIX7系统)
枚举
阶段是boot启动模式时,并不会启动报告
描述符
的
请求
,那么键鼠均不能用,因此键鼠需要分配不同的接口(interface)。 本文虽然以CUSTOMHID和MSC为复合对象,但是也可为其他复合
设备
,其他型号的单片机提供参考,如F1 F4 F0 等单片机的HID+MSC,CDC+MSC,HID+CDC等,双复合,甚至是三复合均可。
USB
鼠标
-HID 报告
描述符
(八)
USB
鼠标
详解阅读顺序 1、
枚举
2、
设备
描述符
3、
设置
地址
4、配置
描述符
5、接口
描述符
6、HID
描述符
7、端点
描述符
8、字符串
描述符
9、HID 报告
描述符
10、HID 报告的返回
USB
鼠标
获取完字符串
描述符
之后,又
请求
了几次
设备
描述符
和配置
描述符
,这些
描述符
在上面已经解析过了,这里就不再重复 获取报告
描述符
的
请求
如下所示 0x81
设备
到主...
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章