初级会员

- 积分
- 83
- 金钱
- 83
- 注册时间
- 2011-3-25
- 在线时间
- 0 小时
|
发表于 2012-4-12 09:22:27
|
显示全部楼层
键盘跟鼠标没什么大的差别,就是报告描述符不一样,然后数据上传需要转成键盘码,比如0是39...
把报告描述符贴下...
const u8 KeyBoard_ReportDescriptor[KEYBOARD_SIZ_REPORT_DESC] =
{
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x06, // USAGE (Keyboard)
0xa1, 0x01, // COLLECTION (Application)
0x05, 0x07, // USAGE_PAGE (Keyboard/Keypad)
0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)
0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)
0x15, 0x00, // LOGICAL_MINIMUM (0)
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)
0x75, 0x08, // REPORT_SIZE (8)
0x25, 0xFF, // LOGICAL_MAXIMUM (255)
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, 0x02, // REPORT_COUNT (2)
// 0x75, 0x01, // REPORT_SIZE (1)
// 0x05, 0x08, // USAGE_PAGE (LEDs)
// 0x19, 0x01, // USAGE_MINIMUM (Num Lock)
// 0x29, 0x02, // USAGE_MAXIMUM (Caps Lock)
// 0x91, 0x02, // OUTPUT (Data,Var,Abs)
// 0x95, 0x01, // REPORT_COUNT (1)
// 0x75, 0x06, // REPORT_SIZE (6)
// 0x91, 0x03, // OUTPUT (Cnst,Var,Abs)
0xc0 // END_COLLECTION
};
我这是两个接口之一的键盘,所以不需要输出报告,如果你需要,把注释掉的部分加上就行;输入报告8字节... |
|