Serial.read() (Arduino.cc)
The first byte of incoming serial data available (or -1 if no data is available). Data type: int.  (-1=0xFFFF)


Serial.available()(Arduino.cc)
Get the number of bytes (characters) available for reading from the serial port.
This is data that’s already arrived and stored in the serial receive buffer (which holds 64 bytes).

Returns
The number of bytes available to read.




收到什麼就送出什麼
int8_t  x;
void setup(){
Serial.begin(115200);
}
void loop(){
if(Serial.available())
 {
  x=Serial.read();
  Serial.write(x);
 }
}

或

void setup(){
Serial.begin(115200);
}
void loop(){
if(Serial.available()){
  Serial.write(Serial.read());
}
}



電腦只認識0,1二進位
Serial monitor 將二進位 轉換成"文字"顯示給"人"看。
123是"1", "2", "3"三個"文字"
ASCII Code 為二進位與"文字"之轉換表
Unicode(萬國碼) 亦為二進位與"文字"之轉換表



















void setup(){
Serial.begin(115200);
}

void loop(){
if(Serial.available()){
Serial.print(Serial.read());
}
}









void setup(){
Serial.begin(115200);
}

void loop(){
if(Serial.available()){
Serial.print(Serial.read(),HEX);
}
}




void setup(){
Serial.begin(115200);
}

void loop(){
if(Serial.available()){
Serial.println(Serial.read());
}
}



void setup(){
Serial.begin(115200);
}

void loop(){
if(Serial.available()){
Serial.println(Serial.read(),HEX);
}
}













使用中斷(interrupt)
只要receive buffer不是空的 就會執行serialEvent()
於 serial monitor 輸入 12345

int rno;
void setup(){
  Serial.begin(115200);
 }

void serialEvent() {
  delay(1);   //註解掉 試試 (會分開讀取)
  rno=Serial.available();
  Serial.print("receiced number= ");
  Serial.println(rno);
  if(rno>0){
   for(int i=0;i<rno;i++){
   Serial.println(Serial.read());}
   }
}
void loop(){
 
}



沒有delay(1);

int rno;
void setup(){
  Serial.begin(115200);
 }

void serialEvent() {
  delay(1);   //註解掉 試試 (會分開讀取)
  rno=Serial.available();
  Serial.print("receiced number= ");
  Serial.println(rno);
  if(rno>0){
   for(int i=0;i<rno;i++){
   Serial.write(Serial.read());}
   }
}
void loop(){
 
}