arduino如何进行串口数据传输 Arduino实例三十三
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="";
}
}
}
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com