Arduino 串行通訊

本文翻譯自 Arduino 串行通訊的官方文檔没炒。

本文的最新版本位于:https://github.com/iwhales/arduino_notes
轉(zhuǎn)載請注明出處:http://www.reibang.com/u/5e6f798c903a

1. 簡介

Serial Communication URL

Arduino 板卡使用 Serial 與電腦或其它設(shè)備進(jìn)行通訊晋渺。所有 Arduino 板卡至少擁有一個串行端口(也稱URAT 或USART):Serial蘸朋。Serial 工作于數(shù)字引腳 0 (RX) 和 1 (TX) ,同時也通過 USB 與電腦通訊瀑晒。因此,如果需要使用 Serial 功能,便不能同時將引腳 0 和 1 用作數(shù)字輸入和輸出赚瘦。 我們可以通過 Arduino IDE 內(nèi)置的串口監(jiān)視器與 Arduino 板卡進(jìn)行通訊。在 IDE 的工具欄中點擊串口監(jiān)視器的圖標(biāo)奏寨,并將波特率設(shè)置為 begin() 的實參值起意,便可與 Arduino 進(jìn)行串口通訊。

位于 TX/RX 引腳上的串行通訊采用 TTL 電平(根據(jù)電路板的設(shè)計方式病瞳,可能采用 5V 或 3.3V)揽咕。請勿將 TX/RX 引腳直接連接到 RS232 串行端口;RS232 的工作電壓是 +/- 12V套菜,可能會對 Arduino 造成損壞亲善。

Arduino Mega 擁有三個額外的串行端口: Serial1 位于 19 (RX) 和 18 (TX) 引腳;Serial2 位于 17 (RX) 和 16 (TX) 引腳笼踩;Serial3 位于 15 (RX) 和 14 (TX) 引腳逗爹。如果想使用這些引腳與 PC 進(jìn)行通訊,則需要自行提供 USB-to-serial 適配器 —— 因為這些額外的串行端口并沒有被連接到 Mega 自帶的 USB-to-serial 適配器上嚎于。如果想要通過這些額外的串行端口與外部 TTL 串行設(shè)備進(jìn)行通訊掘而,那么需要將外部設(shè)備的 TX 和 RX 引腳分別連接至 Mega 的 RX 和 TX 引腳,同時將 Mega 的地線與外部設(shè)備的地線直接相連于购。

Arduino Due 擁有三個額外的 3.3V TTL 串行端口:Serial1 位于 19 (RX) 和 18 (TX) 引腳袍睡;Serial2 位于 17 (RX) 和 16 (TX) 引腳;Serial3 位于 15 (RX) 和 14 (TX) 引腳肋僧。引腳 0 和 1 同樣也被連接到了 ATmega16U2 USB-to-TTL 串口芯片的對應(yīng)引腳斑胜,用于連接 USB 調(diào)試端口。此外嫌吠,SAM3X 芯片還擁有一個原生 USB-serial 端口——SerialUSB' 止潘。

Arduino Leonardo 在引腳 0 (RX) 和 1 (TX) 上使用 Serial1 進(jìn)行通訊,Serial1 也是 5V TTL辫诅。Serial 用作 USB CDC 通訊凭戴。欲了解更多信息,請參閱 Leonardo 的相關(guān)頁面炕矮。

2. 函數(shù)

if (Serial)

  • 描述

    用于指示指定的串口是否已準(zhǔn)備就緒么夫。 在 Leonardo 上者冤,if(Serial) 用于指示 USB CDC 串行連接是否開放俄周。對于所有其他情況彬伦,包括 Leonardo 的 if (Serial1) 澎羞,將始終返回 true 雷客。

  • 語法

    All boards:

    if (Serial)

    Arduino Leonardo specific:

    if (Serial1)

    Arduino Mega specific:

    if (Serial1) if (Serial2) if (Serial3)

  • 參數(shù)

    Nothing

  • 返回值

    boolean:如果指定串口可用拴曲,將返回 true 侧蘸。僅在 Leonardo 的 USB CDC 串行連接準(zhǔn)備好之前進(jìn)行查詢時彬碱,會返回 false枕屉。

  • 示例代碼

    void setup() {
     //初始化串行端口乐纸,并等待端口開啟:
      Serial.begin(9600);
      while (!Serial) {
        ; // 等待串口連接尼桶。需要原生USB
      }
    }
    
    void loop() {
     //proceed normally
    }
    

Serial.available()

  • 描述

    獲取可以從串行端口讀取的可用字節(jié)(字符)數(shù)。該數(shù)據(jù)表示已經(jīng)到達(dá)并存儲在串行接受緩沖區(qū)中的字節(jié)數(shù)——接受緩沖區(qū)可存儲 64 字節(jié)的數(shù)據(jù)锯仪。

    available() 繼承自 Stream utility class泵督。

  • 語法

    Serial.available()

    Arduino Mega only:

    Serial1.available()

    Serial2.available()

    Serial3.available()

  • 參數(shù)

    Nothing

  • 返回值

    返回可供讀取的字節(jié)數(shù)

  • 示例代碼

    以下代碼將返回通過串口接受的字符

    int incomingByte = 0;   // for incoming serial data
    
    void setup() {
        Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
    }
    
    void loop() {
    
        // reply only when you receive data:
        if (Serial.available() > 0) {
            // read the incoming byte:
            incomingByte = Serial.read();
    
            // say what you got:
            Serial.print("I received: ");
            Serial.println(incomingByte, DEC);
        }
    }
    

    Arduino Mega 的示例:該代碼可以將從 Arduino Mega 的某個串口接受到的數(shù)據(jù)發(fā)送到另一個串口。利用這段代碼可將串行設(shè)備通過 Arduino 連接到電腦庶喜。

    void setup() {
      Serial.begin(9600);
      Serial1.begin(9600);
    
    }
    
    void loop() {
      // read from port 0, send to port 1:
      if (Serial.available()) {
        int inByte = Serial.read();
        Serial1.print(inByte, DEC);
    
      }
      // read from port 1, send to port 0:
      if (Serial1.available()) {
        int inByte = Serial1.read();
        Serial.print(inByte, DEC);
      }
    }
    

Serial.availableForWrite()

  • 描述

    獲取可用于寫入串行緩沖區(qū)的字節(jié)(字符)數(shù)小腊,并且不會阻塞寫入操作。

  • 語法

    Serial.availableForWrite()

    Arduino Mega only:

    Serial1.availableForWrite() Serial2.availableForWrite() Serial3.availableForWrite()

  • 參數(shù)

    Nothing

  • 返回值

    可用于寫操作的字節(jié)數(shù)

Serial.begin()

  • 描述

    設(shè)置串行數(shù)據(jù)傳輸?shù)乃俾示每撸瑔挝皇?bits/秒 (baud 波特)秩冈。與計算機(jī)進(jìn)行通訊時,可使用以下速率中的一個:300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200斥扛。當(dāng)然入问,你可以指定其它速率 —— 例如,通過引腳 0 和 1 連接一個需求特定波特率的元件時稀颁。

    可選的第二參數(shù)用于配置數(shù)據(jù)位數(shù)芬失、奇偶校驗和停止位。默認(rèn)是 8 數(shù)據(jù)位匾灶、無奇偶校驗棱烂、1 位停止位。

  • 語法

    Serial.begin(speed) Serial.begin(speed, config)

    Arduino Mega only:

    Serial1.begin(speed) Serial2.begin(speed) Serial3.begin(speed) Serial1.begin(speed, config)``Serial2.begin(speed, config) Serial3.begin(speed, config)

  • 參數(shù)

    speed: bits/秒 (baud) - long

    config: 設(shè)置數(shù)據(jù)位數(shù)阶女、奇偶校驗和停止位颊糜。 有效值如下

    SERIAL_5N1 SERIAL_6N1 SERIAL_7N1 SERIAL_8N1 (the default) SERIAL_5N2 SERIAL_6N2 SERIAL_7N2 SERIAL_8N2``SERIAL_5E1 SERIAL_6E1 SERIAL_7E1 SERIAL_8E1 SERIAL_5E2 SERIAL_6E2 SERIAL_7E2 SERIAL_8E2 SERIAL_5O1``SERIAL_6O1 SERIAL_7O1 SERIAL_8O1 SERIAL_5O2 SERIAL_6O2 SERIAL_7O2 SERIAL_8O2

  • 返回值

    Nothing

  • 示例代碼

    void setup() {
        Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
    }
    
    void loop() {}
    

    Arduino Mega example:

    // Arduino Mega using all four of its Serial ports
    // (Serial, Serial1, Serial2, Serial3),
    // with different baud rates:
    
    void setup(){
      Serial.begin(9600);
      Serial1.begin(38400);
      Serial2.begin(19200);
      Serial3.begin(4800);
    
      Serial.println("Hello Computer");
      Serial1.println("Hello Serial 1");
      Serial2.println("Hello Serial 2");
      Serial3.println("Hello Serial 3");
    }
    void loop() {}
    

Serial.end()

  • 描述

    禁用串行通訊,并允許 RX 和 TX 引腳被用作通用輸入和輸出秃踩。再次調(diào)用 Serial.begin() 可重新啟用串行通訊衬鱼,啟用后 RX 和 TX 便不能再被用作通用輸入和輸出。

  • 語法

    Serial.end()

    Arduino Mega only:

    Serial1.end() Serial2.end() Serial3.end()

  • 參數(shù)

    Nothing

  • 返回值

    Nothing

Serial.find()

  • 描述

    需要注意憔杨,流解析只過一遍鸟赫,沒有辦法折返回去試圖發(fā)現(xiàn)或得到更多東西。

    Serial.find( ) 從串口緩沖區(qū)中讀取數(shù)據(jù)直到給定長度的目標(biāo)字符串被發(fā)現(xiàn)為止。如果發(fā)現(xiàn)目標(biāo)字符串將返回 true惯疙;如果超時則返回 false。 假如目標(biāo)字符串被發(fā)現(xiàn)妖啥,該函數(shù)返回 true霉颠,如果超時則為 false。

    Serial.flush() 繼承自 Stream utility class荆虱。

  • 語法

    Serial.find(target)

  • 參數(shù)

    target : 要搜索的字符串(char)

  • 返回值

    boolean

Serial.findUntil()

  • 描述

    Serial.findUntil() 從串口緩沖區(qū)中讀取數(shù)據(jù)直到給定長度的目標(biāo)字符串蒿偎,或終止字符串被發(fā)現(xiàn)為止。 如果發(fā)現(xiàn)目標(biāo)字符串將返回 true怀读;如果超時則返回 false诉位。

    Serial.findUntil() 繼承自 Stream utility class.

  • 語法

    Serial.findUntil(target, terminal)

  • 參數(shù)

    target : 要搜索的字符串(char) terminal : 終止搜索的字符串(char)

  • 返回值

    boolean

Serial.flush()

  • 描述

    等待傳出的串行數(shù)據(jù)完成傳輸(在 Arduino 1.0 之前,這反而會移除任何已緩存的傳入數(shù)據(jù) )菜枷。如果需要丟棄接受緩沖區(qū)中的所有數(shù)據(jù)苍糠,可使用 while(Serial.read( ) >= 0);

    flush() 繼承自 Stream utility class.

  • 語法

    Serial.flush()

    Arduino Mega only:

    Serial1.flush() Serial2.flush() Serial3.flush()

  • 參數(shù)

    Nothing

  • 返回值

    Nothing

Serial.parseFloat()

  • 描述

    Serial.parseFloat() 返回串行緩沖區(qū)中第一個有效的浮點數(shù)。解析時啤誊,非數(shù)值(或減號)字符會被跳過岳瞭。parseFloat()會在第一個非浮點數(shù)值處終止。

    Serial.parseFloat() 繼承自 Stream utility class.

  • 語法

    Serial.parseFloat()

  • 參數(shù)

    Nothing

  • 返回值

    float

Serial.parseInt()

  • 描述

    在輸入串行數(shù)據(jù)中查找下一個有效的整型蚊锹。

    stream.parseInt() 繼承自 Stream utility class瞳筏。

    特點:

    • 非數(shù)值或負(fù)號的初始字符會被跳過;
    • 如果在(可配置)超時值內(nèi)沒有讀取到字符牡昆,或是讀取到了一個非數(shù)值字符姚炕,解析將停止。
    • 如果發(fā)生超時( Serial.setTimeout() )時丢烘,并沒有讀取到有效數(shù)值柱宦,將會返回 0;
  • 語法

    Serial.parseInt() Serial.parseInt(char skipChar)

    Arduino Mega only:

    Serial1.parseInt() Serial2.parseInt() Serial3.parseInt()

  • 參數(shù)

    skipChar:在搜索時播瞳,用于跳過指定字符捷沸。例如用來跳過千位分隔符,如 32,767 將被解析為 32767狐史。

  • 返回值

    long :下一個有效整型

Serial.peek()

  • 描述

    返回輸入串行數(shù)據(jù)的下一個字節(jié)(字符)痒给,但不會從內(nèi)部串行緩沖區(qū)移除該字節(jié)。也就是說骏全,在下一次調(diào)用 read()之前苍柏,如果連續(xù)調(diào)用 peek() 的話,將返回相同的字符姜贡。

    peek() 繼承自 Stream utility class.

  • 語法

    Serial.peek()

    Arduino Mega only:

    Serial1.peek() Serial2.peek() Serial3.peek()

  • 參數(shù)

    Nothing

  • 返回值

    輸入串行數(shù)據(jù)的第一個可用字節(jié)(如果沒有數(shù)據(jù)可用试吁,則返回 -1 )- int

Serial.print()

  • 描述

    將數(shù)據(jù)以人類可讀的 ASCII 文本打印到串口。該命令有多重形式。對于數(shù)值熄捍,會使用 ASCII 字符打印其每個數(shù)位烛恤。對于浮點數(shù),同樣會使用 ASCII 打印其每個數(shù)位余耽,默認(rèn)包含兩位小數(shù)缚柏。Bytes 會以單個字符發(fā)送。字符和字符串按原樣發(fā)送碟贾。例如 -

    • Serial.print(78) gives "78"
    • Serial.print(1.23456) gives "1.23"
    • Serial.print('N') gives "N"
    • Serial.print("Hello world.") gives "Hello world."

    可選的第二參數(shù)用于指定底數(shù)(格式)币喧,允許的值有:BIN(binary, or base 2), OCT(octal, or base 8), DEC(decimal, or base 10), HEX(hexadecimal, or base 16)。對于浮點數(shù)袱耽,第二個參數(shù)用于指定小數(shù)的位數(shù)杀餐。例如 -

    • Serial.print(78, BIN) gives "1001110"
    • Serial.print(78, OCT) gives "116"
    • Serial.print(78, DEC) gives "78"
    • Serial.print(78, HEX) gives "4E"
    • Serial.println(1.23456, 0) gives "1"
    • Serial.println(1.23456, 2) gives "1.23"
    • Serial.println(1.23456, 4) gives "1.2346"

    可以將基于 flash-memory 的字符串通過 F() 包裝(wrapping)后,傳遞到 Serial.print() 中朱巨。例如

    Serial.print(F(“Hello World”))

    發(fā)送單個 byte史翘,需使用 Serial.write()

  • 語法

    Serial.print(val)

    Serial.print(val, format)

  • 參數(shù)

    val: 用于打印輸出的值 - 任何類型的數(shù)據(jù)冀续。

  • 返回值

    size_t: print() 返回向外寫出的字節(jié)數(shù)恶座,但可選擇是否需獲取該返回值。

  • 示例代碼

    /*
    Uses a FOR loop for data and prints a number in various formats.
    */
    int x = 0;    // variable
    
    void setup() {
      Serial.begin(9600);      // open the serial port at 9600 bps:
    }
    
    void loop() {
      // print labels
      Serial.print("NO FORMAT");       // prints a label
      Serial.print("\t");              // prints a tab
    
      Serial.print("DEC");
      Serial.print("\t");
    
      Serial.print("HEX");
      Serial.print("\t");
    
      Serial.print("OCT");
      Serial.print("\t");
    
      Serial.print("BIN");
      Serial.println("\t");           // carriage return after the last label
    
      for(x=0; x< 64; x++){    // only part of the ASCII chart, change to suit
    
        // print it out in many formats:
        Serial.print(x);       // print as an ASCII-encoded decimal - same as "DEC"
        Serial.print("\t\t");  // prints two tabs to accomodate the label lenght
    
        Serial.print(x, DEC);  // print as an ASCII-encoded decimal
        Serial.print("\t");    // prints a tab
    
        Serial.print(x, HEX);  // print as an ASCII-encoded hexadecimal
        Serial.print("\t");    // prints a tab
    
        Serial.print(x, OCT);  // print as an ASCII-encoded octal
        Serial.print("\t");    // prints a tab
    
        Serial.println(x, BIN);  // print as an ASCII-encoded binary
        //                             then adds the carriage return with "println"
        delay(200);            // delay 200 milliseconds
      }
      Serial.println("");      // prints another carriage return
    }
    
    
  • 注意和警告

    從 1.0 版本開始沥阳,串行傳輸是異步的跨琳;Serial.print() 將在任何字符被發(fā)送前返回。 Serial.print()Serial.write() 不會阻塞程序桐罕。在 1.0 之前脉让,代碼會等到所有的字符發(fā)送之后才返回。在 1.0 及其以后功炮,Serial.write()會在后臺中進(jìn)行(使用了終端處理程序)溅潜,這使得程序會理解恢復(fù),并執(zhí)行后續(xù)代碼薪伏。這種方式通彻隼剑可使程序更加快捷,但是入股需要等待所有字符發(fā)送完畢嫁怀∩杈瑁可以通過在 Serial.write() 之后調(diào)用 Serial.flush() 來實現(xiàn)。

Serial.println()

  • 描述

    將數(shù)據(jù)以人類可讀的 ASCII 文本打印到串口塘淑,并在文本結(jié)尾添加回車字符 (ASCII 13, or '\r') 和換行字符 (ASCII 10, 或 '\n')萝招。該命令采用與 Serial.print() 相同的格式。

  • 語法

    Serial.println(val)

    Serial.println(val, format)

  • 參數(shù)

    val: 用于打印輸出的值 - 任何類型的數(shù)據(jù)存捺。

    format: 指定底數(shù)(對于整形數(shù)據(jù)類型)或小數(shù)位數(shù)(對于浮點類型)

  • 返回值

    size_t: println()返回向外寫出的字節(jié)數(shù)槐沼,但可選擇是否需獲取該返回值

  • 示例代碼

    /*
     Analog input reads an analog input on analog in 0, prints the value out.
     created 24 March 2006
     by Tom Igoe
     */
    
    int analogValue = 0;    // variable to hold the analog value
    
    void setup() {
      // open the serial port at 9600 bps:
      Serial.begin(9600);
    }
    
    void loop() {
      // read the analog input on pin 0:
      analogValue = analogRead(0);
    
      // print it out in many formats:
      Serial.println(analogValue);       // print as an ASCII-encoded decimal
      Serial.println(analogValue, DEC);  // print as an ASCII-encoded decimal
      Serial.println(analogValue, HEX);  // print as an ASCII-encoded hexadecimal
      Serial.println(analogValue, OCT);  // print as an ASCII-encoded octal
      Serial.println(analogValue, BIN);  // print as an ASCII-encoded binary
    
      // delay 10 milliseconds before the next reading:
      delay(10);
    

Serial.read()

  • 描述

    讀取傳入的串口的數(shù)據(jù)。

    read() 繼承自 Stream utility class.

  • 語法

    Serial.read()

    Arduino Mega only:

    Serial1.read() Serial2.read() Serial3.read()

  • 參數(shù)

    Nothing

  • 返回值

    串行輸入數(shù)據(jù)的第一個可用字節(jié)(如果數(shù)據(jù)不可用,則返回 -1)- int 岗钩。

  • 示例代碼

    int incomingByte = 0;   // for incoming serial data
    
    void setup() {
            Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
    }
    
    void loop() {
    
            // send data only when you receive data:
            if (Serial.available() > 0) {
                    // read the incoming byte:
                    incomingByte = Serial.read();
    
                    // say what you got:
                    Serial.print("I received: ");
                    Serial.println(incomingByte, DEC);
            }
    }
    

Serial.readBytes()

  • 描述

    Serial.readBytes() 會從串行端口讀取多個字符纽窟,并將它們存放到一個緩沖器中。如果已讀取了指定數(shù)量的字符兼吓,或發(fā)生了超時 (Serial.setTimeout())臂港,函數(shù)都將終止執(zhí)行。 Serial.readBytes() 會返回被存放到緩沖器中的字符數(shù)周蹭。0 意味著沒有找到有效數(shù)據(jù)。

    Serial.readBytes() 繼承自 Stream utility class疲恢。

  • 語法

    Serial.readBytes(buffer, length)

  • 參數(shù)

    buffer: 用于存儲字節(jié)的緩沖器 (char[] or byte[])

    length : 指定需要讀取的字節(jié)數(shù) (int)

  • 返回值

    放入緩沖區(qū)的字節(jié)數(shù) (size_t) 凶朗。

Serial.readBytesUntil()

  • 描述

    Serial.readBytesUntil() 用于從串口緩沖區(qū)讀取多個字符到一個數(shù)組中。如果檢測到終止字符显拳,或是已讀取了指定數(shù)量的字符棚愤,又或是發(fā)生了超時 (Serial.setTimeout()),函數(shù)都將終止執(zhí)行杂数。該函數(shù)讀取的字符不包含終止字符宛畦,僅到終止字符的前一個字符為止。終止字符會被保留在串口緩沖區(qū)中揍移。

    Serial.readBytesUntil() 會返回被存放到緩沖器中的字符數(shù)次和。0 意味著沒有找到有效數(shù)據(jù)。

    Serial.readBytesUntil()繼承自 Stream utility class.

  • 語法

    Serial.readBytesUntil(character, buffer, length)

  • 參數(shù)

    character : 終止字符 (char)

    buffer: 用于存儲字節(jié)的緩沖器 (char[] or byte[])

    length : 指定需要讀取的字節(jié)數(shù) (int)

  • 返回值

    size_t

Serial.setTimeout()

  • 描述

    Serial.setTimeout() 用于設(shè)置等待串行數(shù)據(jù)的最大毫秒數(shù)那伐,對于 serial.readBytesUntil()serial.readBytes() 有效踏施。默認(rèn)值是 1000 毫秒。

    Serial.setTimeout()繼承自 Stream utility class.

  • 語法

    Serial.setTimeout(time)

  • 參數(shù)

    time : 超時持續(xù)時間罕邀,單位是毫秒 (long) 畅形。

  • 返回值

  • Nothing

Serial.write()

  • 描述

    向串行端口寫入二進(jìn)制數(shù)據(jù)。數(shù)據(jù)會以單個字節(jié)诉探,或是以一系列字節(jié)被發(fā)送日熬。如果發(fā)送的 characters 表示的一個數(shù)值的不同數(shù)位則應(yīng)用 print() 函數(shù)代替。

    直接將變量的值以數(shù)值形式發(fā)送肾胯,發(fā)送時不會轉(zhuǎn)換為ASCII竖席,如整型值 65,會以65發(fā)送敬肚,若接收方以 ASCII 顯示怕敬,則會顯示A;若以 hex 顯示帘皿,則顯示41东跪。

  • 語法

    Serial.write(val) Serial.write(str) Serial.write(buf, len)

    Arduino Mega also supports:

    Serial1, Serial2, Serial3 (in place of Serial)

  • 參數(shù)

    val: 以單個字節(jié)的形式發(fā)送值

    str: 以一系列字節(jié)的形式發(fā)送字符串

    buf: 以一系列字節(jié)的形式發(fā)送一個數(shù)組

    len: 緩沖器的長度

  • 返回值

    size_t : write() 將返回向外寫出的字節(jié)數(shù),但可選擇是否需獲取該返回值。

  • 示例代碼

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

void loop(){
  Serial.write(45); // send a byte with the value 45

   int bytesSent = Serial.write(“hello”); //send the string “hello” and return the length of the string.
}

Description

Writes binary data to the serial port. This data is sent as a byte or series系列 of bytes; to send the characters representing表示的 the digits of a number use the print() function instead.

Serial.serialEvent()

串口數(shù)據(jù)可用

  • 描述

    當(dāng)數(shù)據(jù)可用時調(diào)用該函數(shù)虽填。使用 Serial.read() 便可俘獲可用數(shù)據(jù)丁恭。

    NB : 目前 serialEvent() 不兼容 Esplora, Leonardo, 以及 Micro 。

  • 語法

    void serialEvent(){
    //statements
    }
    

    Arduino Mega only:

    void serialEvent1(){
    //statements
    }
    
    void serialEvent2(){
    //statements
    }
    
    void serialEvent3(){
    //statements
    }
    
  • 參數(shù)

    statements : 任何有效語句

  • 返回值

    Nothing

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斋日,一起剝皮案震驚了整個濱河市牲览,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恶守,老刑警劉巖第献,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兔港,居然都是意外死亡庸毫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門衫樊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飒赃,“玉大人,你說我怎么就攤上這事科侈≡丶眩” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵臀栈,是天一觀的道長蔫慧。 經(jīng)常有香客問我,道長权薯,這世上最難降的妖魔是什么藕漱? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮崭闲,結(jié)果婚禮上肋联,老公的妹妹穿的比我還像新娘。我一直安慰自己刁俭,他們只是感情好橄仍,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牍戚,像睡著了一般侮繁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上如孝,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天宪哩,我揣著相機(jī)與錄音,去河邊找鬼第晰。 笑死锁孟,一個胖子當(dāng)著我的面吹牛彬祖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播品抽,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼储笑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了圆恤?” 一聲冷哼從身側(cè)響起突倍,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盆昙,沒想到半個月后羽历,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡淡喜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年秕磷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拆火。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡跳夭,死狀恐怖涂圆,靈堂內(nèi)的尸體忽然破棺而出们镜,到底是詐尸還是另有隱情,我是刑警寧澤润歉,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布模狭,位于F島的核電站,受9級特大地震影響踩衩,放射性物質(zhì)發(fā)生泄漏嚼鹉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一驱富、第九天 我趴在偏房一處隱蔽的房頂上張望锚赤。 院中可真熱鬧,春花似錦褐鸥、人聲如沸线脚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浑侥。三九已至,卻和暖如春晰绎,著一層夾襖步出監(jiān)牢的瞬間寓落,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工荞下, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留伶选,地道東北人史飞。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像考蕾,于是被迫代替她去往敵國和親祸憋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容