Arduino 软串口两开发板通信
时间: 2025-02-17 21:06:58 浏览: 62
### Arduino 开发板间使用 SoftwareSerial 实现互相通信
为了使两个Arduino开发板能够通过SoftwareSerial库实现相互间的串口通信,需遵循特定的硬件连接方法和编程逻辑。
#### 硬件准备与连接
对于两块Arduino开发板之间的通信,一块作为发送端而另一块作为接收端。每块板都需要定义一对引脚用于传输(TX)和接收(RX),这些引脚不同于默认的硬件串行引脚[^1]。例如,在Arduino Uno上可以选用数字引脚2作为RX, 数字引脚3作为TX来创建一个新的软件串行端口。
#### 发送方代码示例
在发送方Arduino中,初始化指定的GPIO引脚为新的串行对象,并设置波特率:
```cpp
#include <SoftwareSerial.h>
// 创建一个名为 mySerial 的新软件串行对象
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
// 初始化软件串行并设定波特率为9600bps
mySerial.begin(9600);
}
void loop() {
// 向接收方发送字符串 "hello"
mySerial.println("hello");
delay(1000); // 每秒发送一次消息
}
```
#### 接收方代码示例
同样地,在接收方也需要建立相同的`SoftwareSerial`实例,但是注意交换RX/TX引脚的角色,因为现在这块板负责监听来自对方的数据流:
```cpp
#include <SoftwareSerial.h>
// 假设这里也选择了不同的引脚组合比如8作为RX, 9作为TX
SoftwareSerial mySerial(8, 9);
void setup() {
Serial.begin(9600); // 打开硬件串行监视器查看接收到的信息
mySerial.begin(9600); // 设置软件串行波特率匹配发送者
}
void loop() {
if (mySerial.available()) {
String receivedData = mySerial.readString();
Serial.print("Received data: ");
Serial.println(receivedData);
}
}
```
上述例子展示了基本的消息传递过程;实际应用可能涉及更复杂的协议设计以确保可靠性和效率[^4]。
阅读全文
相关推荐


















