目的
實(shí)現(xiàn)Arduino多個(gè)串口間的數(shù)據(jù)通信
- Serial發(fā)送數(shù)據(jù) Serial1接收
- Serial1發(fā)送數(shù)據(jù)Serial接收
硬件
- Arduino Mega
- WRTnode(OpenWRT) 任意LINUX也可
- 杜邦線4根
- USB 轉(zhuǎn) TTL線一根
連線
USB To TTL | Arduino |
---|---|
VCC | 5V |
GND | GND |
TX | RXD1 |
RX | TXD1 |
連線說(shuō)明
//實(shí)現(xiàn)Arduino多個(gè)串口間的數(shù)據(jù)通信
// 1. Serial發(fā)送數(shù)據(jù) Serial1接收
// 2. Serial1發(fā)送數(shù)據(jù)Serial接收
//----------------------------------------------
// serial1 TXD1(18) RXD1(19)
void setup() {
// 初始化串口:
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
// 從串口1轉(zhuǎn)發(fā)到串口0(WRTnode to Arduino):
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.write(inByte);
// Serial.println("Serial1.available");
}
// 從串口0轉(zhuǎn)發(fā)到串口1(Arduino to WRTnode):
if (Serial.available()) {
int inByte = Serial.read();
Serial1.write(inByte);
// Serial.println("Serial.available");
}
}
問(wèn)題
1. 什么時(shí)候 Serial.available()==true
答:在測(cè)試 wakeup()[PN532-HSU] 的時(shí)候發(fā)現(xiàn)Serial.available()=false,通過(guò)測(cè)試發(fā)現(xiàn):只有當(dāng)Serial接收到數(shù)據(jù)后Serial.available()才會(huì)為真胚委。
2. Arduino Mega 上串口的區(qū)別
2.1 串口監(jiān)視器 與 TX0 RX0 之間的關(guān)系
在串口監(jiān)視器上讀顯示的數(shù)據(jù)與Serial上的數(shù)據(jù)相同
Serial
2.2 Arduino Mega上的串口
TXDn +RXDn =Serialn