ESP8266串口实现自数据传递

本文介绍了如何使用ESP8266模块通过SoftwareSerial库实现硬件串口和自定义串口之间的双向数据传输,展示了在Arduino环境下的代码实现及其效果。
摘要由CSDN通过智能技术生成

写在前面

本文主要实现利用ESP8266硬件串口和自定义串口实现两个串口进行信息传输

直接上代码

#include <SoftwareSerial.h>
//自定义串口 (RX, TX)   # D6接TX D7接RX
SoftwareSerial MySerial(D6, D7);

String data0;  // 接受内部数据
String data1;  // 接受外部数据


String receive0() {   // 接受内部数据
  String data;
  if (Serial.available()) {
    data = (char)Serial.read();
    data += receive0();
  }
  return data;
}
String receive1() {   // 接受外部数据
  String data;
  if (MySerial.available()) {
    data = (char)MySerial.read();
    data += receive1();
  }
  return data;
}


void setup() {
  Serial.begin(115200);    //内部串口初始化
  MySerial.begin(115200);  //外部串口初始化
}
void loop() {  
  data1 = receive1();
  if (data1 != "") {
    Serial.println(data1);    //接受的外部数据内部打印
  }  
  data0 = receive0();
  if (data0 != "") {
    MySerial.println(data0);    //接受的内部数据外部打印
  }
  

}

实现效果

在这里插入图片描述

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在ESP8266之间传递int类型的数据可以使用以下步骤: 1. 设置一个ESP8266作为AP热点,另一个ESP8266连接到该热点。 2. 在两个ESP8266之间建立Socket连接,一个作为服务端,一个作为客户端。 3. 在发送数据之前,将int类型的数据装换为char类型的数组。 4. 将char类型的数组通过Socket连接发送到接收端。 5. 在接收端将接收到的char类型的数组转回int类型的数据。 以下是一个简单的示例: 发送端代码: ```c #include <ESP8266WiFi.h> const char* ssid = "Your_SSID"; const char* password = "Your_PASSWORD"; WiFiServer server(80); void setup() { WiFi.mode(WIFI_AP); WiFi.softAP("ESP8266AP", "password"); server.begin(); } void loop() { WiFiClient client = server.available(); if (client) { int num = 123; char data[sizeof(num)]; memcpy(data, &num, sizeof(num)); client.write(data, sizeof(data)); client.stop(); } delay(1000); } ``` 接收端代码: ```c #include <ESP8266WiFi.h> const char* ssid = "Your_SSID"; const char* password = "Your_PASSWORD"; WiFiClient client; void setup() { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); } client.connect("192.168.4.1", 80); } void loop() { if (client.available()) { char data[sizeof(int)]; client.read(data, sizeof(data)); int num; memcpy(&num, data, sizeof(num)); Serial.println(num); client.stop(); } delay(1000); } ``` 在以上代码中,发送端将int类型的数据123转换成char类型的数组进行发送,接收端收到后再转换成int类型的数据,并在串口中输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值