直接使用F380的USB鼠标例程进行开发,只将数组IN_PACKET修改是不行的,将发现仍然只显示左键。仔细查看报告描述符,发现需要修改报告描述符。原有的报告描述符,摘录部分如下:
0x05, 0x09, // Usage Page (Buttons)
0x19, 0x01, // Usage Minimum (01)
0x29, 0x01, // Usage Maximum (01),
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x95, 0x01, // Report Count (1) ,
0x75, 0x01, // Report Size (1)
0x81, 0x02, // Input (Data, Variable, Absolute)
0x95, 0x01, // Report Count (1)
0x75, 0x07, // Report Size (7) ,
0x81, 0x01, // Input (Constant) for padding
参考文章http://blog.csdn.net/hnxyxiaomeng/article/details/62055484,可以看出需要修改为下述设置才可以正常使用右键和中键。
0x05, 0x09, // Usage Page (Buttons)
0x19, 0x01, // Usage Minimum (01)
0x29, 0x03, // Usage Maximum (01),之前是0x01。使用最大值3。1表示左键,2表示右键,3表示中键
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x95, 0x03, // Report Count (1),之前是0x01。与0x29对应
0x75, 0x01, // Report Size (1)
0x81, 0x02, // Input (Data, Variable, Absolute)
0x95, 0x01, // Report Count (1)
0x75, 0x05, // Report Size (7),之前是0x07,代表填充位数(补足1个字节)。因为用了3个键,所以需填充5位。
0x81, 0x01, // Input (Constant) for padding