给鼠标描述符打上注释防止忘记

static uint8_t g_mouse_hid_desc[] = {
//通用桌面设备
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//鼠标设备
0x09, 0x02, // USAGE (Mouse)
//应用集合
0xa1, 0x01, // COLLECTION (Application)
//指针设备
0x09, 0x01, // USAGE (Pointer)
//物理集合
0xa1, 0x00, // COLLECTION (Physical)
//按键
0x85, CONFIG_MOUSE_REPORTID, // REPORT_ID (1)
0x05, 0x09, // USAGE_PAGE (Button)
//使用最小值1,最大值5(左,中,右,上,下)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x05, // USAGE_MAXIMUM (Button 5)
//罗技最新值0,最大值1
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
//数量为5
0x95, 0x05, // REPORT_COUNT (5)
//占一个bit
0x75, 0x01, // REPORT_SIZE (1)
//输入:数据,变量,绝对值
0x81, 0x02, // INPUT (Data,Var,Abs)
//以上3个bit分别表示鼠标的3个按键情况,最低(bit-0)为左键
//bit-1为右键,bit-2为中键,按下时对应值为1,释放时对应的值为0

//填充3个bit,补足一个字节
0x95, 0x01, // REPORT_COUNT (1)
0x75, 0x03, // REPORT_SIZE (3)
0x81, 0x03, // INPUT (Cnst,Var,Abs)
//用途页为通用桌面
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//用途为 X
0x09, 0x38, // USAGE (Wheel)
//逻辑最小值为-127,逻辑最大值为128
0x15, 0x81, // LOGICAL_MINIMUM (-127)
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
//数量为1,每个占8bit
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x01, // REPORT_COUNT (1)
//输入:数据,变量,绝对值
0x81, 0x06, // INPUT (Data,Var,Rel)

//用途页为通用桌面
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//用途为 X
0x09, 0x30, // USAGE (X)
//用途为 Y
0x09, 0x31, // USAGE (Y)
//逻辑最小值为-4096,逻辑最大值为4096
0x16, 0x01, 0xf0, // LOGICAL_MINIMUM (-4095)
0x26, 0xff, 0x0f, // LOGICAL_MAXIMUM (4095)
//数量为2,每个10bit
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x02, // REPORT_COUNT (2)
//输入:数据,变量,绝对值
0x81, 0x06, // INPUT (Data,Var,Rel)
//关闭集合
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
};

用于学习记录,具体逻辑还是要看官方文档

你可能感兴趣的:(计算机外设)