搜索
bottom↓
回复: 13

USB的HID描述符,死活不行,如何解决?

[复制链接]

出0入0汤圆

发表于 2018-8-17 03:21:27 | 显示全部楼层 |阅读模式
小弟目前在做键盘,要求全键无冲,用了两个端点,端点1用于标准键盘8+6传输(一共8个byte,已正常),端点2想让它全部按位传输,16个字节。端点2的报告描述符是这样的

        0x05, 0x01,                    //        USAGE_PAGE (Generic Desktop)        //63
        0x09, 0x06,                    //        USAGE (Keyboard)
        0xa1, 0x01,                    //        COLLECTION (Application)
        0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
        0x19, 0x04,                    //   USAGE_MINIMUM (Keyboard LeftControl)
        0x29, 0x7F,                    //   USAGE_MAXIMUM (Keyboard Right GUI)
        0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
        0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
        0x75, 0x01,                    //   REPORT_SIZE (1)
        0x95, 0x80,                    //   REPORT_COUNT (8)
        0x81, 0x00,                    //   INPUT (Data,Var,Abs)
        0xc0,                          //        END_COLLECTION

输入端点描述符的wMaxPacketSize字段也已改成0x10,usb_prop.c配置输入字节也改成了0x10,但就是死活不行
请问这样不对吗?还是有其他地方需要修改的,不太懂usb,折腾一天了,求大神们帮忙,万分感谢!
附件是usb_desc.c文件



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入442汤圆

发表于 2018-8-17 07:39:59 来自手机 | 显示全部楼层
貌似你要定义多组interface,hid协议我印象中只支持interface分组。

出0入0汤圆

 楼主| 发表于 2018-8-17 08:48:37 来自手机 | 显示全部楼层
wye11083 发表于 2018-8-17 07:39
貌似你要定义多组interface,hid协议我印象中只支持interface分组。

是用了两个接口呀

出0入0汤圆

发表于 2018-8-17 09:09:33 | 显示全部楼层
几年前曾给cherry做过一套MX6.0的方案,记得当时cherry的主要要求就是1MS相应和全键无冲。建议你买个全键无冲的键盘,分析下枚举过程,如果USB这块比较熟的话,其实很容易就能弄清楚

出0入0汤圆

 楼主| 发表于 2018-8-17 09:24:32 | 显示全部楼层
浮生莫若闲 发表于 2018-8-17 09:09
几年前曾给cherry做过一套MX6.0的方案,记得当时cherry的主要要求就是1MS相应和全键无冲。建议你买个全键无 ...

厉害。还有个问题,请问1ms响应是怎么做到按键去抖的呢?1ms哪有时间去抖呀

出0入442汤圆

发表于 2018-8-17 09:32:22 | 显示全部楼层
shenrongze 发表于 2018-8-17 09:24
厉害。还有个问题,请问1ms响应是怎么做到按键去抖的呢?1ms哪有时间去抖呀 ...

机械键盘可以做到.

出0入0汤圆

 楼主| 发表于 2018-8-17 09:49:16 来自手机 | 显示全部楼层
wye11083 发表于 2018-8-17 09:32
机械键盘可以做到.

我就是机械键盘呀,还是说机械键盘的抖动时间很短?有看到别人说樱桃轴的抖动也有5ms左右呀

出0入0汤圆

发表于 2018-8-17 10:38:24 | 显示全部楼层
shenrongze 发表于 2018-8-17 09:24
厉害。还有个问题,请问1ms响应是怎么做到按键去抖的呢?1ms哪有时间去抖呀 ...

cherry号称的1MS响应,其实严格意义来说,就是骗人的。至少MX6.0是这样的,MX6.0是用的hid full speed,而在这个模式下面,操作系统理论上每隔1MS轮询一次设备,但是操作系统真的能做到吗?我表示怀疑。不过也没关系,因为cherry知道大家都是默认的1MS。那么cherry这样宣传,其实说到底是想告诉大家,我的按键检测处理速度比别人快。至于这点,MX6.0确实从硬件采样电路和软件上都做了些优化,比别家的常规搞法稍微快点,具体怎么优化的,我不能告诉你,你得自己慢慢研究,毕竟当时做完了是整套方案给了cherry的。但是也没有传说中的那么神奇,一个按键按下去,操作系统是1MS后知道,还是2MS,3MS,甚至5MS,10ms后才知道,你用户又怎么清楚呐?用户在用的时候唯一能感受到的可能就是cherry号称1ms响应的键盘确实比别家的响应速度要快些。

出0入0汤圆

发表于 2018-8-17 15:17:21 | 显示全部楼层
不懂,帮顶哦。不过建议看看协议,还有圈圈教你玩USB,里面有个例子。

出0入0汤圆

 楼主| 发表于 2018-8-18 13:13:09 | 显示全部楼层
浮生莫若闲 发表于 2018-8-17 10:38
cherry号称的1MS响应,其实严格意义来说,就是骗人的。至少MX6.0是这样的,MX6.0是用的hid full speed, ...

哦哦,谢谢。
有没有什么软件推荐呀,以前我记得有一个软件可以直接看到USB设备的各种报告符,找不到叫什么了

出0入0汤圆

发表于 2018-8-19 11:04:45 来自手机 | 显示全部楼层
网上搜一搜  Device Monitoring Studio 这个软件

出0入0汤圆

发表于 2018-8-19 11:35:49 来自手机 | 显示全部楼层
先买别人的抓包分析
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 04:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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