本帖最后由 Dylan疾风闪电 于 2019-6-24 10:13 编辑 void Joystick_Send(u8 Keys) { //第一个字节表示按键,\ 第二个字节表示x轴(即鼠标左右移动,0表示不动,正值表示往右移,负值表示往左移),\ 第三个字节表示y轴(即鼠标上下移动,0表示不动,正值表示往下移动,负值表示往上移动),\ 第四个字节表示鼠标滚轮(正值为往上滚动,负值为往下滚动). u8 Mouse_Buffer[4] = {0, 0, 0, 0}; s8 X = 0, Y = 0; u8 Mouse_bit = 0; switch (Keys) { case JOY_LEFT: X -= 12; break; case JOY_RIGHT: X += 12; break; case JOY_UP: Y -= 12; break; case JOY_DOWN: Y += 12; break; case JOY_LeftUp: X -= 12; Y -= 12; break; case JOY_LeftDown: X -= 12; Y += 12; break; case JOY_RightUp: X += 12; Y -= 12; break; case JOY_RightDown: X += 12; Y += 12; break; case Mouse_LEFT_Down: Mouse_bit |= 0x1; break; case Mouse_RIGHT_Down: Mouse_bit |= 0x2; break; case Mouse_KEY_Up: Mouse_bit &= 0xC; break; default: return; } /* prepare buffer to send */ Mouse_Buffer[1] = X; Mouse_Buffer[2] = Y; //0号字节代表左右中键3Byteseft,Right,Mid Mouse_Buffer[0] = Mouse_bit; //IN端点使能 USB_SIL_Write(EP1_IN, Mouse_Buffer, EP1_PacketSize); SetEPTxValid(ENDP1);//端点发送有效 }复制代码其实就是很简单的USB HID模拟鼠标,发送鼠标的物理动作。 注:如果你要自定义USB协议,那工作量会几何增长,涉及的知识主要是USB 2.0协议(包括但不限于设备描述符、报告描述符等) STM32CUBE的话,你直接生成一个USB-HID模板就可以了。 调用USBD_HID_SendReport(&hUsbDeviceFS, msg, 4);
所在话题
参与活动
-
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16