使用相对移动的描述符时,移动成功:
HIDMouse[0] = 0x00; // 鼠标左键释放 HIDMouse[1] = Xoutdata[0]; // X axis data low 8bit HIDMouse[2] = Xoutdata[1]; // Y axis data high 8bit // 等待Endp2不忙 while (Endp2Busy) ; // 如果忙(上一包数据没有传上去),则等待。 // 发送HIDMouse数组 Enp2IntIn(HIDMouse, sizeof(HIDMouse));
但是使用了绝对移动描述符后,移动失败,抓包只有数据但是不鼠标移动:
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x02, // Usage (Mouse) 0xA1, 0x01, // Collection (Application) 0x09, 0x01, // Usage (Pointer) 0xA1, 0x00, // Collection (Physical) 0x05, 0x09, // Usage Page (Button) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x03, // Usage Maximum (0x03) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x95, 0x03, // Report Count (3) 0x75, 0x01, // Report Size (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x01, // Report Count (1) 0x75, 0x05, // Report Size (5) 0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x30, // Usage (X) 0x15, 0x00, // Logical Minimum (0) 0x26, 0x80, 0x07, // Logical Maximum (1920) 0x35, 0x00, // Physical Minimum (0) 0x46, 0x80, 0x07, // Physical Maximum (1920) 0x75, 0x10, // Report Size (16) 0x95, 0x01, // Report Count (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x09, 0x31, // Usage (Y) 0x15, 0x00, // Logical Minimum (0) 0x26, 0x80, 0x07, // Logical Maximum (1920) 0x35, 0x00, // Physical Minimum (0) 0x46, 0x80, 0x07, // Physical Maximum (1920) 0x75, 0x10, // Report Size (16) 0x95, 0x01, // Report Count (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x09, 0x38, // Usage (Wheel) 0x15, 0x81, // Logical Minimum (-127) 0x25, 0x7F, // Logical Maximum (127) 0x75, 0x08, // Report Size (8) 0x95, 0x01, // Report Count (1) 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0xC0, // End Collection
这是绝对移动的代码: HIDMouse[0] = 0x00; // 鼠标左键释放 HIDMouse[1] = Xoutdata[0]; // X axis data low 8bit HIDMouse[2] = Xoutdata[1]; // X axis data high 8bit HIDMouse[3] = Youtdata[0]; // Y axis data low 8bit HIDMouse[4] = Youtdata[1]; // Y axis data high 8bit // 等待Endp2不忙 while (Endp2Busy) ; // 如果忙(上一包数据没有传上去),则等待。 // 发送HIDMouse数组 Enp2IntIn(HIDMouse, sizeof(HIDMouse));
请问这个是什么问题?
热门产品 :
CH32X035: 32位USB+USB PD单片机