Arduino 实例(三十三)两个Arduino板卡实现两台电脑的软串口通信

Arduino 实例(三十三)两个Arduino板卡实现两台电脑的软串口通信

解决方案goocz2024-12-22 17:35:2927A+A-

1 实现的功能

两者串口连接

两者串口连接

电脑A

Arduino UNO

Arduino nano

电脑B


软串口连接并通信


如下电脑B的com5口,输入信息,回车

电脑A的com3口,得到信息

2 Arduino UNO 和 Arduino nano板卡的连接

Arduino UNO

Arduino nano

Pin脚3

Pin脚5

Pin脚2

Pin脚6

接地互联

3 实物连接

4 Arduino UNO板卡的程序

#include<SoftwareSerial.h>
 SoftwareSerial softSerial(3,2);
 
void setup() {
  //初始化serial,该串口用于与计算机连接通信:
  Serial.begin(9600);
  //初始化serial1,该串口用于与设备B连接通信;
  softSerial.begin(9600);
  softSerial.listen();
}
//两个字符串分别用于存储A,B两端传来的数据
String device_A_String="";
String device_B_String="";
 
void loop() {
  // 读取从计算机传入的数据,并通过softSerial发送个设备B:
  if(Serial.available()>0)
  {
    if(Serial.peek()!='\n')
    {
      device_A_String+=(char)Serial.read();
     
    }
    else
    {
      Serial.read();
      Serial.print("you said:");
      Serial.println(device_A_String);
      softSerial.println(device_A_String);
      device_A_String="";
     
    }
  }
  //读取从设备B传入的数据,并在串口监视器中显示
  if(softSerial.available()>0)
  {
    if(softSerial.peek()!='\n')
    {
      device_B_String+=(char)softSerial.read();
    }
    else
    {
      softSerial.read();
      Serial.print("device B said:");
      Serial.println(device_B_String);
      device_B_String="";
    }
  }
}

5 Arduino nano板卡的程序

#include<SoftwareSerial.h>
//新建一个softSerial对象,rx:6,tx:5
SoftwareSerial softSerial1(6,5);
 
void setup() {
  // 初始化串口通信:
  Serial.begin(9600);
  //初始化软串口通信;
  softSerial1.begin(9600);
  //监听软串口通信
  softSerial1.listen();
}
// 两个字符串分别用于存储A、B两端传来的数据:
  String device_B_String="";
  String device_A_String="";
  
void loop() {
  // 读取从计算机传入的数据,并通过serial1发送个设备B:
  if(Serial.available()>0)
  {
    if(Serial.peek()!='\n')   //在没接收到回车换行的条件下
    {
      device_B_String+=(char)Serial.read();   //这段代码是在把字符串联成字符串
    }
    else
    {  //这段代码实现从缓冲区读取数据,并将数据发送到计算机显示和软串口发送;
      Serial.read();
      Serial.print("you said:");
      Serial.println(device_B_String);
      softSerial1.println(device_B_String);
      device_B_String="";
    }
  }
  //读取从设备A传入的数据,并在串口监视器中显示
  
  if(softSerial1.available()>0)
  {
   
    if(softSerial1.peek()!='\n')
    {
      device_A_String+=(char)softSerial1.read();
    }
    else
    {
      softSerial1.read();
      Serial.print("device A said:");
      Serial.println(device_A_String);
      device_A_String="";
    }
   
  }
 
 
 
}
点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5