打印

哈哈,终于搞了一回USB HID设备,做了一个USB键盘来玩玩~~~~

[复制链接]
11049|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
computer00|  楼主 | 2007-3-22 17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
其中的报告描述符让我晕了几天~~~~~几份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锁存器,可以不用理会它们):






相关帖子

沙发
emicro| | 2007-3-22 17:19 | 只看该作者

不错哦

圈圈的USB玩的很好啊,有没兴趣玩下GUI?

使用特权

评论回复
板凳
无悔| | 2007-3-22 17:19 | 只看该作者

找个凳子坐,有空向楼主学习!!

使用特权

评论回复
地板
王紫豪| | 2007-3-22 19:14 | 只看该作者

还是做学生有时间啊

使用特权

评论回复
5
huangqi412| | 2007-3-22 19:39 | 只看该作者

学习

使用特权

评论回复
6
computer00|  楼主 | 2007-3-22 20:59 | 只看该作者

哈哈,硬件不用做,全是以前现成的,我只写程序

程序框架也是原来的~~~~

我也是上完课回去才弄弄的,三天就弄好了。只是之前花了一周多时间来看HID方面的文档~~~~

使用特权

评论回复
7
xiaojune| | 2007-3-22 21:35 | 只看该作者

哇,好崇拜你哦圈圈

使用特权

评论回复
8
qjy_dali| | 2007-3-22 21:38 | 只看该作者

玩得不错呀,嘿嘿

使用特权

评论回复
9
turmary| | 2007-3-23 00:49 | 只看该作者

太爽了,五体投地...

使用特权

评论回复
10
hotpower| | 2007-3-23 00:53 | 只看该作者

哈哈~~~

使用特权

评论回复
11
lixun00| | 2007-3-23 08:08 | 只看该作者

佩服。。。

使用特权

评论回复
12
发霉的味道| | 2007-3-23 08:34 | 只看该作者

牛人!!

这年头,牛人就是多!!

使用特权

评论回复
13
computer00|  楼主 | 2007-3-24 00:17 | 只看该作者

哈哈~~~经过一个晚上的修改,把USB键盘改成USB鼠标了~~~

花了一个晚上,把USB键盘的程序改了改,就成了USB鼠标了~~~~~~只是修改了一下报告描述符,
以及返回数据等,修改很少。用的是键盘的硬件,8键鼠标上移,4键鼠标左移,6键鼠标右移,2键鼠标下移,
9键往上滚动,3键往下滚动,alt键鼠标左键,0键鼠标中键,enter键鼠标右键)


欢迎到我的blog下载全部源代码包:http://computer00.21ic.org/user1/2198/archives/2007/36520.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标准请求................................
    获取描述符(从接口)..............................

使用特权

评论回复
14
杨真人| | 2007-3-27 00:48 | 只看该作者

牛得不行了.哈哈!

使用特权

评论回复
15
陈双君| | 2007-3-27 10:03 | 只看该作者

看起来不错

看起来不错,找个空的时间座下来好好的向楼主学习学习。

使用特权

评论回复
16
happystar| | 2007-3-27 21:56 | 只看该作者

圈圈好好努力,争口气,做龙芯。

使用特权

评论回复
17
computer00|  楼主 | 2007-3-27 22:08 | 只看该作者

倒塌了~~~~要做也做圈圈芯,龙芯不好听。

使用特权

评论回复
18
王紫豪| | 2007-3-27 22:50 | 只看该作者

蛋蛋芯

使用特权

评论回复
19
杨真人| | 2007-3-28 15:45 | 只看该作者

蛋蛋^_^...

使用特权

评论回复
20
computer00|  楼主 | 2007-3-28 16:58 | 只看该作者

晕...成蛋黄了.....

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

246

主题

14693

帖子

210

粉丝