虚拟键盘成功

This commit is contained in:
zqm
2026-04-03 15:59:19 +08:00
parent cf7ae28b1b
commit 32439929d8
30 changed files with 6307 additions and 6062 deletions

View File

@@ -4,16 +4,18 @@
#include "esp_log.h"
#include "tinyusb.h"
#include "tusb.h"
#include "tusb_config.h"
#include "rust_app_wrapper.h"
static const char *TAG = "USB";
#define TUSB_DESC_TOTAL_LEN (TUD_CONFIG_DESC_LEN + CFG_TUD_HID * TUD_HID_DESC_LEN)
#define REPORT_ID_KEYBOARD 1
#define REPORT_ID_MOUSE 2
#define TUSB_DESC_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_HID_DESC_LEN)
#define USB_VID 0x30D8
#define USB_PID 0x50A6
#define USB_BCD 0x0100
#define USB_BCD 0x0200
static tusb_desc_device_t const desc_device =
{
@@ -26,7 +28,7 @@ static tusb_desc_device_t const desc_device =
.bMaxPacketSize0 = CFG_TUD_ENDPOINT0_SIZE,
.idVendor = USB_VID,
.idProduct = USB_PID,
.bcdDevice = USB_BCD,
.bcdDevice = 0x0100,
.iManufacturer = 0x01,
.iProduct = 0x02,
.iSerialNumber = 0x03,
@@ -35,8 +37,8 @@ static tusb_desc_device_t const desc_device =
uint8_t const desc_hid_report[] =
{
TUD_HID_REPORT_DESC_KEYBOARD(HID_REPORT_ID(HID_ITF_PROTOCOL_KEYBOARD)),
TUD_HID_REPORT_DESC_MOUSE(HID_REPORT_ID(HID_ITF_PROTOCOL_MOUSE))
TUD_HID_REPORT_DESC_KEYBOARD(HID_REPORT_ID(REPORT_ID_KEYBOARD)),
TUD_HID_REPORT_DESC_MOUSE(HID_REPORT_ID(REPORT_ID_MOUSE))
};
uint8_t const * tud_hid_descriptor_report_cb(uint8_t instance)
@@ -45,21 +47,44 @@ uint8_t const * tud_hid_descriptor_report_cb(uint8_t instance)
return desc_hid_report;
}
static char const *hid_string_descriptor[5] = {
static char const *hid_string_descriptor[] = {
(char[]){0x09, 0x04},
"JoyD",
"Virtual Keyboard Mouse",
"123456",
"HID Interface",
};
static uint8_t const hid_configuration_descriptor[] = {
TUD_CONFIG_DESCRIPTOR(1, 2, 0, TUSB_DESC_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
TUD_HID_DESCRIPTOR(0, 4, false, sizeof(desc_hid_report), 0x81, 64, 1),
TUD_HID_DESCRIPTOR(2, 4, false, sizeof(desc_hid_report), 0x82, 64, 1),
enum {
ITF_NUM_HID,
ITF_NUM_TOTAL
};
#define EPNUM_HID 0x81
static uint8_t const hid_configuration_descriptor[] = {
TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, TUSB_DESC_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
TUD_HID_DESCRIPTOR(ITF_NUM_HID, 0, HID_ITF_PROTOCOL_NONE, sizeof(desc_hid_report), EPNUM_HID, CFG_TUD_HID_EP_BUFSIZE, 10)
};
uint16_t tud_hid_get_report_cb(uint8_t instance, uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen)
{
(void) instance;
(void) report_id;
(void) report_type;
(void) buffer;
(void) reqlen;
return 0;
}
void tud_hid_set_report_cb(uint8_t instance, uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize)
{
(void) instance;
(void) report_id;
(void) report_type;
(void) buffer;
(void) bufsize;
}
void app_main(void)
{
ESP_LOGI(TAG, "USB 初始化");