我使用 ESP32 WROOM 32 创建了一个自定义键盘,其中包含 CP2102,可通过 USB C 型编程。
这是我的原理图的一部分:
组装完毕并将其连接到我的电脑后,在设备管理器中检测到 CP2102: img 设备管理器 ss
以下是我在 Arduino IDE 中的设置: img arduino 设置
u 使用简单的示例代码,使用适用于 ESP32 的 Arduino IDE 在串行监视器上显示串行输出:
void setup() {
// Initialize serial monitor at 115200 bps
Serial.begin(115200);
}
void loop() {
// Write message to serial monitor
Serial.println("Hello, world!");
delay(1000); // Wait for 1 second
}
上传到我的开发板后,终端显示以下内容: img arduino 终端
问题**
当我打开串口监视器时,在任何波特率下都没有数据显示。
你能帮我找出我的错误可能出在哪里吗?
在没有看到您的键盘代码的情况下,我只能疯狂地猜测您正在通过主 RX/TX 引脚使用串行通信将击键发送到 PC,但串行监视器还通过主 RX/TX 与 ESP 进行通信
通过串行通信,当时只有一个硬件/软件应用程序可以使用它,因此谁先到达那里将接管该串行端口,在您的情况下,它可能是键盘侧或实际上是 PC 操作系统本身,因此 Arduino 串行监视器只是挂起。
我能想到的唯一解决方案是使用辅助硬件 RX2/TX2 作为键盘(您只需要稍微更改代码)...您应该在 ESP32 上至少有另一组,我认为这是Wroom 上的引脚 12 和 14 并在您的设计中添加另一个物理 USB 端口,以便 PC 会将键盘视为另一个 COM 端口,而主要端口将是串行监视器的 COM 端口。
如果您无法更改 PCB,那么我想您可以为了调试而向 ESP 添加(临时)一个小屏幕并在那里输出调试信息?