最近入手了Beetle ESP32 C3(SKU:DFR0868),整体非常小巧。这次尝试用它搭配之前的 Micro USB Host 【参考1】读取USB 鼠标信息。
第一次使用 ESP32 C3,有如下需要注意的地方:
- 推荐使用Pin 21 输出 Debug 信息。就是说在使用的时候最好外部连接一个串口转USB Dongle接收信息
- 在使用中出现过无法刷新的情况,恢复方法是:先按下Boot按钮,然后再按下 Reset按钮,最后松开Reset 按钮,再松开 Boot按钮,再次刷新即可;
硬件连接如下:
名称 | Beetle ESP32 C3 | Beetle ESP32 C3 | 名称 | |
INT | IO0 | IO6 | MOSI | |
GND | GND | IO5 | MISO | |
MD- | USB 母头 D- | IO7 | SS | |
MD+ | USB 母头 D+ | IO4 | SCLK | |
VBCOMP | N/A | 3.3V | RESET | |
GND | GND | 3.3V | 3.3V |
之后需要对USB Host 库进行修改,修改位置如下:
- \USB_Host_Shield_Library\UsbCore.h
#elif defined(ESP32)
#ifdef CONFIG_IDF_TARGET_ESP32C3
typedef MAX3421e<P7, P0> MAX3421E; // ESP32C3 boards SS INT
#else
typedef MAX3421e<P5, P17> MAX3421E; // ESP32 boards
#endif
#elif (defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__))
2. \USB_Host_Shield_Library\avrpins.h
// Pinout for ESP32 dev module
MAKE_PIN(P0, 0);
MAKE_PIN(P7, 7); //LABZDebug
MAKE_PIN(P1, 1); // TX0
MAKE_PIN(P10, 10); // TX1
MAKE_PIN(P3, 3); // RX0
MAKE_PIN(P21, 21); // SDA
MAKE_PIN(P22, 22); // SCL
之后,可以运行库自带的测试例子 \USB_Host_Shield_Library\examples\HID\USBHIDBootMouse
最终的测试板子:
运行结果如下,可以看到正常得到了鼠标数据:
参考: