OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6942|回复: 4

Joystick_Send(0,-x0,-y0,0);

[复制链接]

96

主题

247

帖子

1

精华

高级会员

Rank: 4

积分
801
金钱
801
注册时间
2012-6-29
在线时间
0 小时
发表于 2013-4-10 23:10:40 | 显示全部楼层 |阅读模式
USB发送PC的对口函数Joystick_Send(0,-x0,-y0,0);
其内部的四个参数分别是什么意思呢?
根据原子的代码可以知道-x0,-y0是鼠标的位置,那么Joystick_Send(a,-x0,-y0,b);中的a和b代表什么意思呢?
或是谁有Keil内自带的usb的c文件的使用说明书之类的东西。。。。
http://blog.tianya.cn/blogger/blog_main.asp?BlogID=4666068
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-4-10 23:24:11 | 显示全部楼层
这要看USB协议对鼠标的规定了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

96

主题

247

帖子

1

精华

高级会员

Rank: 4

积分
801
金钱
801
注册时间
2012-6-29
在线时间
0 小时
 楼主| 发表于 2013-4-10 23:25:47 | 显示全部楼层
鼠标发送给PC的数据每次4个字节 
BYTE1 BYTE2 BYTE3 BYTE4 
定义分别是: 
BYTE1 -- 
       |--bit7:   1   表示   Y   坐标的变化量超出-256   ~   255的范围,0表示没有溢出  
       |--bit6:   1   表示   X   坐标的变化量超出-256   ~   255的范围,0表示没有溢出  
       |--bit5:   Y   坐标变化的符号位,1表示负数,即鼠标向下移动  
       |--bit4:   X   坐标变化的符号位,1表示负数,即鼠标向左移动  
       |--bit3:     恒为1  
       |--bit2:     1表示中键按下  
       |--bit1:     1表示右键按下  
       |--bit0:     1表示左键按下  
BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量  
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量 
BYTE4 -- 滚轮变化。 
由于手上没有USB鼠标,对BYTE1的4-7位没有测试,对于BYTE2 BYTE3做个测试,BYTE1的4-7全为0的时候,BYTE2 BYTE3的正负表示鼠标移动方向 

键盘发送给PC的数据每次8个字节 
BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8 
定义分别是: 
BYTE1 -- 
       |--bit0:   Left Control是否按下,按下为1  
       |--bit1:   Left Shift  是否按下,按下为1  
       |--bit2:   Left Alt    是否按下,按下为1  
       |--bit3:   Left GUI    是否按下,按下为1  
       |--bit4:   Right Control是否按下,按下为1   
       |--bit5:   Right Shift 是否按下,按下为1  
       |--bit6:   Right Alt   是否按下,按下为1  
       |--bit7:   Right GUI   是否按下,按下为1  
BYTE2 -- 暂不清楚,有的地方说是保留位 
BYTE3--BYTE8 -- 这六个为普通按键 
键盘经过测试。 
例如:键盘发送一帧数据   02 00 0x04 0x05 00 00 00 00 
表示同时按下了Left Shift + ‘a’+‘b’三个键 
对于键码和PS2的键盘有所不同,具体请看附件。 
USB HID to S2 Scan Code 对照表.pdfourdev_651088NZ5EKW.pdf(文件大小:133K) (原文件名:USB HID to S2 Scan Code Translation Table .pdf)  


2011.6.23补充说明 
补充对于键盘BYTE2的说明: 
参照百合网(http://www.baiheee.com/OpenSource/Easy%20USB%2051%20Programer/Easy%20USB%2051%20Programer12.htm)键盘的报告描述符,如下 
/*******************************************************************************************/ 
//这里只列出了第二个字节的说明 
    //这样的数据段个数为1     
    0x95, 0x01,                    //   REPORT_COUNT (1)     
    //每个段长度为8bits     
    0x75, 0x08,                    //   REPORT_SIZE (8)     
    //输入用,常量,值,绝对值     
    0x81, 0x03,                    //   INPUT (Cnst,Var,Abs)     
         
    //上面这8个bit是常量,设备必须返回0   
/*******************************************************************************************/ 
这里只是指明了这是一个以字节为单位的输入数据,并没有指明它的取值范围。 

在HID1.11协议的Appendix B-->B.1 rotocol 1 (Keyboard) 的报告描述符中也有这样的说明(HID1.11协议的59页) 
/*******************************************************************************************/ 
   Report Count (1),   
   Report Size (8),  
   Input (Constant),              ;Reserved byte  
   Report Count (5),   
   Report Size (1),  
/*******************************************************************************************/ 
在注释中说明,这个字节是保留字节。
http://blog.tianya.cn/blogger/blog_main.asp?BlogID=4666068
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-3-15
在线时间
1 小时
发表于 2014-8-5 15:06:54 | 显示全部楼层
回复【3楼】moline:
---------------------------------
那就是说Joystick_Send(a,-x0,-y0,b);中对应的4个变量就是BYTE1 BYTE2 BYTE3 BYTE4咯,但是BYTE4对应滚轮,是不是他的数值的大小就对应滚轮速度的快慢呢!!!
回复 支持 反对

使用道具 举报

8

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
234
金钱
234
注册时间
2017-4-6
在线时间
45 小时
发表于 2024-4-27 23:23:47 | 显示全部楼层
例如:键盘发送一帧数据   02 00 0x04 0x05 00 00 00 00  
表示同时按下了Left Shift + ‘a’+‘b’三个键

请问Esc按键数据是多少?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表