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