返回该小组首页 回复主题
computer00

computer00

小组等级:     E币:7882  (E币换礼)

#1楼主:[原创] 自制USB鼠标来玩玩~~~~(源代码+原理图)

文章发表于:2007-07-17 10:00

花了一个晚上,把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欧姆的匹配电阻。由于图得比较匆忙,所以没留意。
点击看大图
 
点击看大图
 
点击看大图
 

      【回复】

computer00

   小组等级:    E币:7882  (E币换礼)

#2

文章发表于:2007-08-25 12:15

发现程序的一个BUG,有些朋友提到枚举不正常,可能是下面这个函数的问题,替换它再试试.

/***************************设置地址***************************************/
void set_usb_address(void)
{
usb_flags.flags.set_addr=1;
set_usb_addr(Control_Data.DeviceRequest.wValue);
while(select_endpoint(1)&0x01);
write_endpoint_buff(1,0,0);
while(select_endpoint(1)&0x01);
usb_flags.flags.usb_endp0_in=0;
usb_flags.flags.setup_packet_out=0;
}
/******************************************************************************/

cocappjj

   小组等级:    E币:1776  (E币换礼)

#3

文章发表于:2007-09-14 11:00

好多线。。。。呵呵,圈圈真是厉害啊。

sduhd

   小组等级:    E币:79  (E币换礼)

#4

文章发表于:2007-09-19 14:49

鼠标应该是HID吧?

请教圈圈:HID的东西怎么入手呢?圈圈有没有源码可以贴上来?

sduhd

   小组等级:    E币:79  (E币换礼)

#5

文章发表于:2007-09-19 14:56

看了一下圈圈的键盘,是做的HID。真是学习的好榜样。

computer00

   小组等级:    E币:7882  (E币换礼)

#6

文章发表于:2007-09-19 17:25

USB键盘/鼠标可是标准的HID设备。源代码当然贴了啊,就在上面。

ttlasong

   小组等级:    E币:170  (E币换礼)

#7

文章发表于:2007-09-20 07:49

佩服.学习

172733456

   小组等级:    E币:79  (E币换礼)

#8

文章发表于:2007-09-23 03:09

佩服.学习

tyrone3000

   小组等级:    E币:90  (E币换礼)

#9

文章发表于:2007-09-26 12:36

佩服  以后圈圈画好电路板图,我可以给你制板

computer00

   小组等级:    E币:7882  (E币换礼)

#10

文章发表于:2007-09-27 02:40

好,先谢谢了。

jameswang050574

   小组等级:    E币:210  (E币换礼)

#11

文章发表于:2008-04-08 23:00

您好,楼主!USB 鼠标应用在哪种场合多呢?

总共 , 当前 /,2【下一页】

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

浏览该小组的用户还看过...

设计资源与分销

";