C# 如何将数据从Windows发送到HID键盘?

C# 如何将数据从Windows发送到HID键盘?,c#,keyboard,hid,C#,Keyboard,Hid,我用了好几天的时间试图用c#中的Visual Studio将数据从Windows发送到我的STM32F103C8T6自定义HID键盘 我尝试了许多不起作用的图书馆和资料。就像这一个,这是最容易实现的:经过多次尝试,我发现发送数据对于使用此库的键盘设备不起作用。 在此状态下,应用程序只能检测设备是否已连接,发送数据不起作用 描述符(79): 处理接收部件的代码部分: static int8_t CUSTOM_HID_OutEvent_FS(uint8_t *buffer) { /* USER

我用了好几天的时间试图用c#中的Visual Studio将数据从Windows发送到我的STM32F103C8T6自定义HID键盘

我尝试了许多不起作用的图书馆和资料。就像这一个,这是最容易实现的:经过多次尝试,我发现发送数据对于使用此库的键盘设备不起作用。 在此状态下,应用程序只能检测设备是否已连接,发送数据不起作用

描述符(79):

处理接收部件的代码部分:

static int8_t CUSTOM_HID_OutEvent_FS(uint8_t *buffer)
{
  /* USER CODE BEGIN 6 */
    if(buffer[1] == 0x01 || buffer[1] == 1 || buffer[1] == '1' || buffer[2] == 0x01 || buffer[2] == 1 || buffer[2] == '1')
    {
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, 1);
    }
 
  return (USBD_OK);
  /* USER CODE END 6 */
} 
Visual Studio部件与USBHIDDRIVER.dll(Florian的库):


考虑到我是初学者,谢谢你的帮助

我认为(
for(int I=0;I>=64;I++)应该是(
for(int I=0;I感谢您的帮助)。您是对的,只是犯了一个小错误,但这并不能解决问题,我尝试了很多方法通过“按钮1\u单击”发送数据函数,这个for循环只是为了让你明白我想发送这么大的数据。好的,我会安装Wireshark并捕获USB通信量,以查看到底发送到设备的是什么。如果发送了你的额外数据,那么问题一定出在设备端。我刚读到Windows阻止了与键盘和鼠标的HID通信。现在状态,我不知道如何发送数据…考虑到我们需要选择设备,我认为使用串行COM端口不是好方法。
static int8_t CUSTOM_HID_OutEvent_FS(uint8_t *buffer)
{
  /* USER CODE BEGIN 6 */
    if(buffer[1] == 0x01 || buffer[1] == 1 || buffer[1] == '1' || buffer[2] == 0x01 || buffer[2] == 1 || buffer[2] == '1')
    {
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, 1);
    }
 
  return (USBD_OK);
  /* USER CODE END 6 */
} 
USBHIDDRIVER.USBInterface usb = new USBInterface("vid_0483", "pid_5750");
        public Form1()
        {
            InitializeComponent();
            if (usb.Connect())
                MessageBox.Show("Connecté!");
            else
                MessageBox.Show("Deconnecté");
        }
 private void button1_Click(object sender, EventArgs e)
        {
          
            byte[] Buffer = new byte[64];
            for(int i = 0; i>=64; i++)
            {
                Buffer[i] = 1;
            }

            usb.write(Buffer);
        }