社区
驱动开发/核心开发
帖子详情
请教USB主机获取设备配置描述符的问题(圈圈USB)
tovax
2015-09-07 08:18:17
圈圈书上的USB主机获取设备“配置描述符”的数据格式为:0x80 0x06 0x00 0x02 0x00 0x00 0x40 0x00
我的结果为:0x80 0x06 0x00 0x02 0x00 0x00 0xFF 0x00
区别在于最后的wLength不一样,0x40代表64字节,请问为什么我的是0xFF呢?
(PC是win7的)
...全文
308
2
打赏
收藏
请教USB主机获取设备配置描述符的问题(圈圈USB)
圈圈书上的USB主机获取设备“配置描述符”的数据格式为:0x80 0x06 0x00 0x02 0x00 0x00 0x40 0x00 我的结果为:0x80 0x06 0x00 0x02 0x00 0x00 0xFF 0x00 区别在于最后的wLength不一样,0x40代表64字节,请问为什么我的是0xFF呢? (PC是win7的)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
maxwell11
2015-10-13
打赏
举报
回复
0xff表示你可以返回的数据最大长度是255,按实际数据长度返回即可。
tinylaker
2015-09-14
打赏
举报
回复
按照设备配置返回就行了,不用关心FF
圈圈
教你玩
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. 总线复位; 2.
获取
设备
描述符
; 3. 总线复位; 4. 设置地址; 5.
获取
设备
描述符
; 6.
获取
配置
描述符
1; 7.
获取
配置
描述符
2; 8. … 9.
获取
字符串
描述符
1; 10.
获取
字符串
描述符
2; 11. … 12. 设置
配置
; 13. … 可见,对于多个
配置
和字符串
描述符
的设
Linux驱动之
USB
设备
驱动
当一个
USB
设备
被插入的时候,
USB
设备
驱动,也就是
usb
_generic_driver会跟
USB
设备
交互,得到其所有的各种
描述符
,并为每个接口都定义成为一个device,之后再加载到
usb
_bus上,让其去匹配其对应的接口驱动程序。
USB
学习(二)-
设备
描述符
USB
描述符
概述
描述符
作用就是通过命令操作给
主机
传递
配置
信息,从而让
主机
知道
设备
具有什么功能、属于哪一类
设备
、占用多少带宽、使用哪类传输的方式及数量的量大小,只有
主机
确定了
配置
信息之后,
设备
才能真正开始工作。
USB
有5种标准
描述符
:
USB
设备
描述符
配置
描述符
字符
描述符
接口
描述符
端点
描述符
描述符
之间的关系: 一个
设备
只有一个
设备
描述符
,而一个
设备
描述符
可以包含多个
配置
描述符
,而一个
配置
描述符
可以包含多个接口
描述符
...
USB
协议详解第6讲(
USB
描述符
-端点
描述符
)
目录 1.
USB
描述符
2.端点
描述符
组成 3.STM32
配置
描述符
集合代码(必须按顺序) 4.接口
描述符
组成详解 1.
USB
描述符
USB
描述符
有
设备
描述符
、标准
配置
描述符
、接口
描述符
、端点
描述符
、字符串
描述符
,HID
设备
有HID
描述符
、报告
描述符
和物理
描述符
。今天主要是学习
USB
端点
描述符
的组成。 2.端点
描述符
组成 前面讲了
设备
描述符
、标准
配置
描述符
、接口
描述符
,本篇我们讲解端点
描述符
。首先要明确的一点是端点
描述符
不能单独返回给
USB
主机
,
主机
会请求获得
配置
描述符
集合,
配置
描述符
集合主
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章