ESP32-S2 带有一个集成了收发器的全速 USB OTG 外设,符合 USB 1.1 规范。意思是S2即支持 USB Device 又支持Host。于是,这次测试在 Arduino 环境下通过 ESP32 S2 直接支持读取 USB Keyboard 的按键信息。
准备工作有点复杂:
- 必须使用 ESP32 2.0.1 环境,如果你使用 2.0.2 会出现编译不过的情况
2.硬件上GPIO19 和 GPIO20 可以分别作为 USB 的 D- 和 D+,这里我直接飞线接到一个 USB 母头上:
3.安装库下面这两个库
准备完成后,即可编译测试 esp32-usb-host-demos-main 中的 usbhidboot 示例代码。
4.编译上传之后如果想看到结果,还需要将 Core Debug Level 设置为 Verbose ,默认的 None 不会有任何输出
比如,我这边看到的结果如下: