是不是一直卡在这里,是不是没有显示任何输出?
本人因此在网上搜了许多相关的文章,连platformio的官网也顺便浏览了一部分,还是没有找到解决办法,目前搜到最多的情况就是串口频率没对上(platformio.ini里面的monitor_speed要与代码里面Serial.begin设置的一模一样才可以),同时这些代码在Arduino上面又能实现,并且Arduino的串口监视器可以正常输出,这也让我意识到我的硬件是没有坏的,于是我就在这里反反复复徘徊了许久。
最终,在不断了寻找和对deepseek+openai的疯狂压榨下,我尝试将deepseek它提供的代码进行了调试,代码如下:
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
Serial.println("Hello from ESP8266");
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
delay(1000);
}
在本该安静的监视窗口上面突然就反复弹出Hello from ESP8266,我意识到,我成功了,对于纯新手小白来说,我无法详细的解释这种现象,有请deepseek助手来:
--------------------------------------------------------------------------------------------------------------------------
根据你的描述,代码在本该无法输出的状态下变成了可输出的形式,这可能是因为在某些情况下,LED_BUILTIN
的电平反转会影响串口输出的行为。
以下是可能的原因和解决方案的解析:
1. 串口与 LED 共享引脚:
在某些开发板(如 ESP8266 或 ESP32)上,LED_BUILTIN
引脚和某些串口引脚可能是共享的。也就是说,LED_BUILTIN
可能连接到一个与串口输出相关的引脚。当你通过 digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN))
控制 LED 状态时,实际上是在操作该引脚的电平,这有可能对串口通信产生干扰。
- 在某些情况下,反转
LED_BUILTIN
引脚的状态可能会引发一些微小的电气噪声或电平变化,导致串口输出出现问题。
2. 串口通信和引脚干扰:
ESP8266 和 ESP32 使用串口进行调试输出。如果你将 LED_BUILTIN
引脚(通常是 GPIO 2 或 GPIO 16)用作 LED 控制,并且这同时会影响到与串口传输相关的引脚,可能会产生意想不到的行为。这种干扰通常会导致串口输出不稳定,或者无法按预期工作。
--------------------------------------------------------------------------------------------------------------------------