参考
いろいろ注意
- 過去を見よ!!!
結果
プログラム
#include "EspUsbHost.h"
EspUsbHost usb;
void setup()
{
Serial.begin(115200);
delay(500);
Serial.print("\n\nSTART\n\n");//caa45040
delay(3000);//caa45040
usb.onHIDInput([](const EspUsbHostHIDInput &input)
{
// en: Raw HID input fires before any keyboard/mouse/vendor-specific parsing.
// ja: Raw HID入力は、キーボード/マウス/ベンダー固有の解析前に通知されます。
espUsbHostPrint(input);
});
usb.onDeviceConnected([](const EspUsbHostDeviceInfo &device)
{
Serial.print("connected: ");
espUsbHostPrint(device); });
usb.onDeviceDisconnected([](const EspUsbHostDeviceInfo &device)
{
Serial.print("disconnected: ");
espUsbHostPrint(device); });
//delay(2000);
if (!usb.begin())
{
Serial.printf("usb.begin() failed: %s\n", usb.lastErrorName());
} else {Serial.printf("usb.begin() OK\n");} //caa45040
delay(1000);//caa45040
}
void loop()
{
delay(1);//caa45040
}
おまけ
- A
- B
- X
- Y
- 上
- 下
- <-
- ->
- 上から時計回りに0から7でボタンoffは、f
0,1,2,3,4,5,6,7,f
struct EspUsbHostHIDInput
{
uint8_t address = 0;
uint8_t interfaceNumber = 0;
uint16_t vid = 0;
uint16_t pid = 0;
const char *manufacturer = "";
const char *product = "";
const char *serial = "";
uint8_t subclass = 0;
uint8_t protocol = 0;
const uint8_t *data = nullptr;
size_t length = 0;
};
void espUsbHostPrint(const EspUsbHostHIDInput &input, Print &out)
{
out.printf("hid: address=%u vid=%04x pid=%04x iface=%u subclass=0x%02x protocol=0x%02x len=%u data=",
input.address,
input.vid,
input.pid,
input.interfaceNumber,
input.subclass,
input.protocol,
static_cast<unsigned>(input.length));
espUsbHostPrintHex(input.data, input.length, out);
out.println();
}













