按照小米手柄驱动修改的北通卡洛手柄驱动 详细信息见https://yellowko.com/joystick-driver.html
震动
00 00 ff ff
小电机
00 00 ff 00
特殊位,最大震动
00 00 01 00
大电机
00 00 00 ff
大电机启动条件
00 00 00 40
从HID调试软件中看到的数据包Data[20]
以下两种数据按一定规律交替发送
00 00 0f 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 0f 80 80 80 80 00 00 00 00 00 00 00 00 01 00 00 00 00 00
hid原始数据包在前面有个ID号,我这里是0x00
所以Data[21]
事件
键位 | 线性键值 | 键值 |
---|---|---|
Up | Data[3] 0F=>00 | |
Right | Data[3] 0F=>02 | |
Down | Data[3] 0F=>04 | |
Left | Data[3] 0F=>06 | |
LSX | Data[4] 00-FF | |
LSY | Data[5] 00-FF | |
LS | Data[2] 00=>20 | |
RSX | Data[6] 00-FF | |
RSY | Data[7] 00-FF | |
RS | Data[2] 00=>40 | |
LB | Data[1] 00=>40 | |
RB | Data[1] 00=>80 | |
LT | Data[8] 00-FF | Data[2] 00=>01 |
RT | Data[9] 00-FF | Data[2] 00=>02 |
B | Data[10] 00=>FF | Data[1] 00=>02 |
Y | Data[11] 00=>FF | Data[1] 00=>10 |
X | Data[12] 00=>FF | Data[1] 00=>08 |
A | Data[13] 00=>FF | Data[1] 00=>01 |
Back | Data[2] 00=>04 | |
Start | Data[2] 00=>08 | |
Home | Data[2] 00=>10 |
本手柄在按压B键时会出现间断性失效,在按下与不按下之间无规律地快速切换速度很快,对除要求长按的操作并无太大影响。拆机后发现并非按键抖动造成的,怀疑是芯片内对于外部中断的读取有问题导致的。后来发现是不小心按到了手柄自带的Turbo键导致的。。。- 小电机字节给0x01时会是最大震动,但是实际上并没有感觉到多大影响。
- 小概率会出现键位瞬间识别错误的情况,可能是延时过短,影响不大,没有深究。