Esp8266向Arduino软串口通信,Arduino收到乱码的问题!

本文介绍了解决ESP8266与Arduino进行软串口通信时出现乱码的方法。通过调整供电方式,实现了稳定的数据传输。文章提供了一段示例代码,演示了正确的连接方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Esp8266向Arduino软串口通信,Arduino收到乱码的问题!

简要:本文说明Esp8266向Arduino软串口通信,Arduino收到乱码的问题!

最近小编在做一个用arduino UNOesp8266开发板的项目,在过程中遇到了一个问题:esp8266如何和arduino通信?为什么arduino收到的都是乱码?现在网上有很多解决arduino读取esp8266的串口信息,今天小编就来为大家解决这个问题。

例子:Esp8266串口通信输出“1”,Arduino收到什么信息?

代码:

Arduino Uno:

#include <SoftwareSerial.h>

SoftwareSerial arduinoSerial = SoftwareSerial(0,1);

void setup() {
  // put your setup code here, to run once:
   Serial.begin(9600);
   arduinoSerial.begin(9600);
   arduinoSerial.flush();
}

void loop() {
  // put your main code here, to run repeatedly:
    char a;
    a=arduinoSerial.read();
    Serial.println(a);
}

ESP8266:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.write("1");
}

这是就有人问了,我收到的都是乱码啊。。。。?我收到的不是我想要的啊?

此时esp8266输出的情况是这样的!

再次我们
这里我们使用的是安信可串口调试助手

而Arduino收到的消息是这样的!
在这里插入图片描述
这时我们如何解决这个问题呢?此时我是这么接的线!

在这里插入图片描述
测试时,我的两个模块都是使用USB转TTL供电的,当我们把esp8266用电池供电就解决了这个问题了,在这里我是将arduino上的3v3接到了esp8266的3v管脚上arduino为esp8266供电
Arduino串口通信收到的数据
上图片!Arduino串口通信收到的数据👆👆👆

现在就正常了!

如果有错误,还请各位大佬批评指正!

愿大家在单片机的学习之路一路顺风ヾ(◍°∇°◍)ノ゙

### ESP8266EX与Arduino串口屏通信 #### 连接方法 为了实现ESP8266EX与Arduino之间的串口通信并进一步连接到串口屏,硬件连接至关重要。对于ESP8266模块(如ESP8266-12F),其与Arduino UNO的典型连接方式如下[^2]: | Arduino | ESP8266 | |---------|----------| | TX (1) | URXD | | RX (0) | UTXD | | 3.3V | VCC | | 3.3V | CH_PD | | GND | GND | 注意:如果使用的是其他类型的开发板或不同的引脚编号,则需调整相应的连线。 #### 示例代码 下面是一个简单的示例代码用于测试ESP8266通过Arduino发送数据给串口屏的功能。此代码假设已经正确配置好了ESP8266的Wi-Fi设置,并能够接收来自网络的数据包。 ```cpp #include <ESP8266WiFi.h> // 替换成自己的SSID和密码 const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED){ delay(500); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to the Wi-Fi network"); } void loop(){ if(Serial.available()){ String dataReceived = Serial.readString(); // 假设这里是从服务器获取到了要显示的信息 // 将信息转发给串口屏 Serial.print(dataReceived); // 如果遇到软看门狗重置问题可以尝试禁用它 ESP.wdtDisable(); // 或者定期调用 ESP.wdtFeed() } } ``` 这段代码展示了基本框架,在实际应用中可能还需要加入更多功能来处理具体业务逻辑以及优化性能表现。 #### 解决可能出现的问题 当观察到串口监视器中有乱码时不必惊慌,这可能是由于波特率不匹配造成的正常情况之一;只要能收到`OK`响应就说明固件烧录成功了。另外,若发现有`Soft WDT reset`错误提示,可以在适当位置添加`ESP.wdtDisable()`语句关闭看门狗定时器,或者频繁执行`ESP.wdtFeed()`以防止超时复位发生[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值