使用platformio进行代码上传并且查看串口监视器没输出?或许可以试试这样:

        是不是一直卡在这里,是不是没有显示任何输出?

        本人因此在网上搜了许多相关的文章,连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 控制,并且这同时会影响到与串口传输相关的引脚,可能会产生意想不到的行为。这种干扰通常会导致串口输出不稳定,或者无法按预期工作。
 

--------------------------------------------------------------------------------------------------------------------------

Visual Studio Code (VSCode)本身并不直接提供串口通信的功能,因为它是文本编辑器,主要用于编写代码而不是硬件交互。不过你可以通过安装特定的插件来扩展其功能。一种常见的做法是使用"Serial Monitor for VSCode" 或 "vscode-serialconsole" 这样的插件,它们允许你在VSCode中配置并监视串口。 以下是基本步骤: 1. 安装插件:在VSCode的市场里搜索相关串口插件并安装,比如去`Extensions` -> `Marketplace` -> 搜索`serial monitor`。 2. 配置串口:打开终端或命令面板,在插件的设置界面配置串口号、波特率等串口连接参数。 3. 创建发送数据函数:在你的项目中,编写一个函数用于生成你要发送的数据,并将其转换成字符数组。例如: ```javascript function sendDataToArray(value: any): number[] { let array = []; for (let i = 0; i < value.length; i++) { array.push(value[i].toString().charCodeAt(0)); } return array; } ``` 4. 接收并处理数据:当从串口接收到数据时,你需要读取数据并解析回数组。这通常涉及到监听串口的输入事件,然后解析接收到的字符流。 5. 实现接收函数: ```javascript async function receiveData() { let receivedArray = await serialPort.read(); // 解码字符到数组 const decodedArray = Array.from(new TextDecoder('utf-8').decode(receivedArray)); // 对接收到的数据做进一步处理 processReceivedArray(decodedArray); } ``` 6. 调用接收函数:设置定时器或者触发条件后,定期调用`receiveData()`函数来获取新的数据。 记得在使用过程中,可能需要根据具体的串口库API进行调整。如果你正在使用Node.js的`serialport`库,上述示例会有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值