其中的报告描述符让我晕了几天~~~~~几份HID相关的协议还是蛮长的~~~~~~ 明天再弄个USB鼠标设备玩玩~~~~~~~有空的话再搞个红外遥控器玩玩~~~ 这回是拿以前做的Mass storage来改的,所以比较快,修改了一下描述符 以及端点处理等,就行了。用了一个4*4的小键盘,有0-9十个数字键, Num Lock键,Caps Lock键,Shift键,Ctrl键,Alt键,回车键等。 最多可以有三个键同时按下,如果相交的话,最多只能两个键按下。
欢迎到我的blog下载全部源代码:http://computer00.21ic.org/user1/2198/archives/2007/36484.html
通过串口返回的调试信息:
系统启动................................ 断开USB连接........................ USBD12芯片初始化 设置地址..................... 地址为: 0 连接USB............... USB总线复位................................ USB总线挂起................................ USB总线复位................................ USB总线挂起................................ USB总线复位................................ USB标准请求................................ 获取描述符................................ 获取设备描述符................................ USB总线复位................................ USB标准请求................................ 设置地址..................... 地址为: 2 USB标准请求................................ 获取描述符................................ 获取设备描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取语言ID................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取设备序列号................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取语言ID................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取产品字符串................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取语言ID................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取产品字符串................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取设备描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 设置配置................................ USB类请求................................ 设置空闲................................ USB标准请求................................ 获取描述符(从接口).............................. 获取报告描述符................................ USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. 端点2输出................................ 端点2的数据是 0x01 端点2输出................................ 端点2的数据是 0x03 端点2输出................................ 端点2的数据是 0x01 端点2输出................................ 端点2的数据是 0x00 端点2输出................................ 端点2的数据是 0x02 端点2输出................................ 端点2的数据是 0x03
在设备管理器里看到的图:
原理图 (用的是以前做IDE转USB的板,所以上面还有个IDE接口和573锁存器,可以不用理会它们):
|