我額外使用了 SoftwareSerial.h 將 uart 通訊口獨立出來,以免跟 Arduino IDE 的監看視窗打架
並且我將 "接收端的地址+波段" 與 "數據" 分隔開來
發射端代碼(同樣發射一個byte)
#include "SoftwareSerial.h"
#define AUX 5
#define LED 13
SoftwareSerial mySerial(2, 3); // RX, TX
const byte address[] = {0xEA,0x00,0x0D};
byte data = 0xBB; //預計傳送數據為 BB
void waitAUX();
void sendData1Byte (const byte* address, byte data);
void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  pinMode(AUX,INPUT);
  pinMode(LED,OUTPUT);
  waitAUX();
  Serial.println("Start.");
}
void loop() {
  pinMode(LED,!digitalRead(LED));
  sendData1Byte (address, data); //傳送 1 Byte 的數據
  delay(1500);
}
// ===== 等待 Lora 晶片不繁忙 =====
void waitAUX(){
  while(!digitalRead(AUX));
  delay(10);
}
// ===== sendData1Byte =====
void sendData1Byte (const byte* address, byte data){
  waitAUX();
  for(int i = 0; i < 3; i++){
    mySerial.write(address[i]);
    delay(2);
  }
  mySerial.write(data);
  delay(2);
  mySerial.flush();  
  waitAUX();
}
接收端代碼(亦改為使用SoftwareSerial.h)
#include "SoftwareSerial.h"
#define AUX 5
#define LED 13
SoftwareSerial mySerial(2, 3); // RX, TX
void waitAUX();
byte incomingByte = 0;
void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  pinMode(AUX,INPUT);
  pinMode(LED,OUTPUT);
  waitAUX();
  Serial.println("Start.");
}
void loop() {
  if (mySerial.available() > 0) {
    incomingByte = mySerial.read(); 
    Serial.println(incomingByte); (0xBB 十進制為 187)
    digitalWrite(LED,!digitalRead(LED));
    Serial.flush();
  }    
}
// ===== 等待 Lora 晶片不繁忙 =====
void waitAUX(){
  while(!digitalRead(AUX));
  delay(10);
}
接收端的串列埠監看視窗
接收端由 SX1278 Tx 端擷取到的數據
可以發現,接收端的 SX1278 接收到數據後,會直接僅將數據由 SX1278 Tx 發送出來,前面的"接收端的地址+波段" 並不會囊括在內
我的 Youtube 頻道,一定要訂閱
我將定期推出程式語言的新手教學影片

