问题描述
我试图使用Windows在c#中使用Visual Studio从Windows向我的STM32F103C8T6 CustomHID键盘发送数据。
我尝试了许多无法使用的库和东西。像这样最容易实现的代码:http://www.florian-leitner.de/index.php/2007/08/03/hid-usb-driver-library/经过多次尝试,我发现发送数据不适用于使用此库的键盘设备。 在这种状态下,应用程序仅能够检测设备是否已连接,无法发送数据。
描述符(79):
0x05,0x01,// USAGE_PAGE (Generic Desktop)
0x09,0x06,// USAGE (Keyboard)
0xa1,// COLLECTION (Application)
0x05,0x07,// USAGE_PAGE (Keyboard)
0x19,0xe0,// USAGE_MINIMUM (Keyboard LeftControl)
0x29,0xe7,// USAGE_MAXIMUM (Keyboard Right GUI)
0x15,0x00,// LOGICAL_MINIMUM (0)
0x25,// LOGICAL_MAXIMUM (1)
0x75,// REPORT_SIZE (1)
0x95,0x08,// REPORT_COUNT (8)
0x81,0x02,// INPUT (Data,Var,Abs)
0x95,// REPORT_COUNT (1)
0x75,// REPORT_SIZE (8)
0x81,0x03,// INPUT (Cnst,0x05,// REPORT_COUNT (5)
0x75,// REPORT_SIZE (1)
0x05,// USAGE_PAGE (LEDs)
0x19,// USAGE_MINIMUM (Num Lock)
0x29,// USAGE_MAXIMUM (Kana)
0x91,// OUTPUT (Data,// REPORT_SIZE (3)
0x91,// OUTPUT (Cnst,// REPORT_COUNT (6)
0x75,// REPORT_SIZE (8)
0x15,0x65,// LOGICAL_MAXIMUM (101)
0x05,// USAGE_MINIMUM (Reserved (no event indicated))
0x29,// USAGE_MAXIMUM (Keyboard Application)
0x81,Ary,Abs)
0x06,0xff,// USAGE_PAGE (vendor Defined Page 1)
0x09,// USAGE (vendor Usage 1)
0x15,// LOGICAL_MINIMUM (0)
0x26,// LOGICAL_MAXIMUM (255)
0x75,// REPORT_SIZE (8)
0x95,0x04,// REPORT_COUNT (4)
0x91,Abs)
0xc0 // END_COLLECTION
处理接收部分的部分代码:
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.dll(弗洛里安语的库)的Visual Studio部件:
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);
}
考虑到我是初学者,谢谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)