OpenEdv-开源电子网

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

求助:STM32制作复合型HID键盘和鼠标(单接口)

[复制链接]

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-10-21
在线时间
7 小时
发表于 2014-12-15 11:35:34 | 显示全部楼层 |阅读模式
5金钱

目的:通过修改报告描述符,利用报告ID的方法,实现单接口的HID USB键盘和鼠标复合设备;
方法:借鉴圈圈教你学USB;
问题:
①鼠标和键盘数据PC无法识别;
②已通过串口读取到需要发送的数据,因此判断采集数据过程正常;
③usb hound仅仅能识别硬件;无法检测到设备数据,怀疑Joystick_Send()未能将数据发送至PC;

[mw_shl_code=c,true]const u8 Joystick_ReportDescriptor[JOYSTICK_SIZ_REPORT_DESC] = { /*****************************keyboard ReportDescriptor**************/ 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x06, // USAGE (Keyboard) 0xa1, 0x01, // COLLECTION (Application) 0x85, 0x01, //REPORT ID(1) 键盘数据ID 0x05, 0x07, // USAGE_PAGE (Keyboard/Keypad) 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) 0x15, 0x00, // LOGICAL_MINIMUM (0) /* 16 */ 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x08, // REPORT_COUNT (8) 0x75, 0x01, // REPORT_SIZE (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x95, 0x01, // REPORT_COUNT (1) 0x75, 0x08, // REPORT_SIZE (8) 0x81, 0x03, // INPUT (Cnst,Var,Abs) 0x95, 0x06, // REPORT_COUNT (6) /* 32 */ 0x75, 0x08, // REPORT_SIZE (8) 0x15, 0x00, // LOGICAL_MINIMUM(0) 0x25, 0xFF, // LOGICAL_MAXIMUM (255) 0x05, 0x07, // USAGE_PAGE(keboard/Keypad) 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) 0x81, 0x00, // INPUT (Data,Ary,Abs) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x05, // REPORT_COUNT (5) 0x75, 0x01, // REPORT_SIZE (1) /* 52 */ 0x05, 0x08, // USAGE_PAGE (LEDs) 0x19, 0x01, // USAGE_MINIMUM (Num Lock) 0x29, 0x05, // USAGE_MAXIMUM (Kana) 0x91, 0x02, // OUTPUT (Data,Var,Abs) 0x95, 0x01, // REPORT_COUNT (1) 0x75, 0x03, // REPORT_SIZE (3) ???????? 0x91, 0x03, // OUTPUT (Cnst,Var,Abs) 0xc0, // END_COLLECTION /* 67 */ /*****************************Mouse ReportDescriptor**************/ 0x05,0x01, //USAGE_PAGE(Generic Desktop) 0x09,0x02, //USAGE(MOUSE) 0xa1,0x01, //COLLECTION 0X85,0X02, //REPORT ID(2)鼠标数据ID 0x09,0x01, /*Usage(Pointer)*/ 0xa1,0x00, /*Collection(Linked)*/ 0x05,0x09, /*Usage Page(Buttons)*/ 0x19,0x01, /*Usage Minimum(1)*/ /* 16 */ 0x29,0x03, /*Usage Maximum(3)*/ 0x15,0x00, /*Logical Minimum(0)*/ 0x25,0x01, /*Logical Maximum(1)*/ 0x95,0x03, /*Report Count(3)*/ 0x75,0x01, /*Report Size(1)*/ 0x81,0x02, /*Input(Variable)*/ 0x95,0x01, /*Report Count(1)*/ 0x75,0x05, /*Report Size(5)*/ /* 32 */ 0x81,0x01, /*Input(Constant,Array)*/ 0x05,0x01, /*Usage Page(Generic Desktop)*/ 0x09,0x30, /*Usage(X axis)*/ 0x09,0x31, /*Usage(Y axis)*/ 0x09,0x38, /*Usage(Wheel)*/ 0x15,0x81, /*Logical Minimum(-127)*/ 0x25,0x7F, /*Logical Maximum(127)*/ 0x75,0x08, /*Report Size(8)*/ /* 48 */ 0x95,0x03, /*Report Count(3)*/ 0x81,0x06, /*Input(Variable, Relative)*/ 0xC0, /*End Collection*/ 0xc0 //End Collection again /* 54 */ } ; /* Joystick_ReportDescriptor */ [/mw_shl_code] [mw_shl_code=c,true][/mw_shl_code] [mw_shl_code=c,true]

[/mw_shl_code]

爱电子,爱科技,爱新技术
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-10-21
在线时间
7 小时
 楼主| 发表于 2014-12-17 08:38:04 | 显示全部楼层
爱电子,爱科技,爱新技术
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-17 23:21:29 | 显示全部楼层
帮顶。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2014-10-21
在线时间
7 小时
 楼主| 发表于 2014-12-22 08:13:12 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
谢谢帮顶!
爱电子,爱科技,爱新技术
回复

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2013-12-9
在线时间
19 小时
发表于 2015-1-4 14:19:02 | 显示全部楼层
去看看圈圈教你玩USB这本书!谢谢搂主了
我行我可以
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 12:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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