原创 自制USB鼠标来玩玩~~~~(源代码+原理图)

2007-3-31 01:21 14419 10 35 分类: MCU/ 嵌入式
花了一个晚上,把USB键盘的程序改了改,就成了USB鼠标了~~~~~~

只是修改了一下报告描述符,以及返回数据等,修改很少。

 

点击此处下载 USB鼠标源代码包.rar rar

 

 

以下是通过串口返回的调试信息:

系统启动................................
断开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标准请求................................
    获取描述符(从接口)..............................

 

在设备管理器里的显示:

点击看大图

 


原理图(用的是键盘的硬件,8键鼠标上移,4键鼠标左移,6键鼠标右移,2键鼠标下移,

9键往上滚动,3键往下滚动,alt键鼠标左键,0键鼠标中键,enter键鼠标右键):

(注意:原理图上所标的晶体值是以前的,这个程序中使用的是22.1184M的晶体.它关系到串口波特率,如果你不使用串口,那么可以不用理会它.)

 

注意:图中串口电平转换部分的C8和C10接反了,C11负端应接VDD。D12的SUSPEND(12脚)应该接地。USB接头处的D+和D-应该分别串联22欧姆的匹配电阻。由于图得比较匆忙,所以没留意。

点击看大图

 

点击看大图

 

点击看大图

点击看大图

点击看大图
PARTNER CONTENT

文章评论28条评论)

登录后参与讨论

computer00 2008-9-20 20:09

这个字符串是unicode编码,请看产品字符串。

computer00 2008-8-22 08:55

不可以,我这个是USB设备,也就是一个普通的鼠标设备,它只能被电脑的USB口读,而不能读别的USB口。

用户795807 2008-8-19 20:34

请问computer00 你的程序是不是可以实现从usb读入鼠标移动或按键的数值,然后从串口输出?

computer00 2008-7-13 01:09

可以的,我这个程序只是在一个开发板上实现的例子而已,并不适合做产品。 做USB鼠标有专门的芯片了,便宜得很。 网上有用MEGA单片机模拟低速USB的实例,你可以去www.ouravr.com看看。

用户737017 2008-7-12 22:37

你的自制USB成本太高,能不能用单片机模拟usb通讯

用户96862 2008-1-18 09:53

不服不行,老大,太感激你了

computer00 2007-12-12 13:05

写个程序,打开内部上拉电阻,然后测量D+,看能不能拉高。

用户1333012 2007-12-12 10:39

27脚可是有3.3v电压的

用户1333012 2007-12-12 10:22

改过来了

我检查没发现28脚有电压啊

该不会是d12挂了吧

computer00 2007-12-11 23:43

22欧姆的上拉电阻肯定是搞错了,22欧姆的电阻应该串联在D+和D-上的,或者干脆取消掉试试。你可以看看我最新的原理图:

点击开大图

相关推荐阅读
computer00 2013-06-05 16:27
[招聘]Android系统开发工程师
任职要求: 1. 扎实的C/C++基础,熟悉嵌入式Linux和Android操作系统的软件开发; 2. 良好的沟通能力和逻辑思维能力; 3. 良好的英文文献阅读能力; 4. 具备...
computer00 2013-06-04 09:26
[招聘]Android应用开发工程师
任职要求: 1. 具备扎实的面向对象编程思想和JAVA编程基础; 2. 熟悉Eclipse+ADT开发环境,熟练掌握Android基本类库; 3. 熟悉网络应用和多媒体应用开发; ...
computer00 2012-09-26 13:15
圈圈的新浪官方围脖
http://weibo.com/computer00  ...
computer00 2012-09-26 13:12
欢迎大家去收听圈圈弹的曲子
http://www.tudou.com/home/_105209016  ...
computer00 2009-06-29 15:07
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)下载地址1:下载地址2: 勘误.pdf...
computer00 2009-06-25 11:23
一块磐正845GE主板PS2接口的修复
圈圈有一部台式机,某天开机时,发现键盘用不了了,停留在输入BIOS密码那里。主机自检通过,但是蜂鸣器却发出很微弱的、连续的声音,同时键盘的三个LED也没有出现象往常一样的闪烁一下。圈圈以为多日未用,积...
EE直播间
更多
我要评论
28
10
关闭 站长推荐上一条 /1 下一条