目的
实现Arduino多个串口间的数据通信
- Serial发送数据 Serial1接收
- Serial1发送数据Serial接收
硬件
- Arduino Mega
- WRTnode(OpenWRT) 任意LINUX也可
- 杜邦线4根
- USB 转 TTL线一根
连线
USB To TTL | Arduino |
---|---|
VCC | 5V |
GND | GND |
TX | RXD1 |
RX | TXD1 |
//实现Arduino多个串口间的数据通信
// 1. Serial发送数据 Serial1接收
// 2. Serial1发送数据Serial接收
//----------------------------------------------
// serial1 TXD1(18) RXD1(19)
void setup() {
// 初始化串口:
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
// 从串口1转发到串口0(WRTnode to Arduino):
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.write(inByte);
// Serial.println("Serial1.available");
}
// 从串口0转发到串口1(Arduino to WRTnode):
if (Serial.available()) {
int inByte = Serial.read();
Serial1.write(inByte);
// Serial.println("Serial.available");
}
}
问题
1. 什么时候 Serial.available()==true
答:在测试 wakeup()[PN532-HSU] 的时候发现Serial.available()=false,通过测试发现:只有当Serial接收到数据后Serial.available()才会为真。
2. Arduino Mega 上串口的区别
2.1 串口监视器 与 TX0 RX0 之间的关系
在串口监视器上读显示的数据与Serial上的数据相同
2.2 Arduino Mega上的串口
TXDn +RXDn =Serialn