Serial.available()

Beschreibung

Rufe die Anzahl der zum Lesen verfügbaren Bytes (Zeichen) von der seriellen Schnittstelle ab. Dies sind Daten, die bereits eingetroffen sind und im seriellen Empfangspuffer gespeichert sind (der 64 Byte enthält).

Serial.available() erbt von der Stream-Dienstklasse.

Syntax

Serial.available()

Parameter

  • Serial: Serielles Port-Objekt. Siehe die Liste der verfügbaren seriellen Anschlüsse für jedes Board auf der Serial-Hauptseite.

Rückgabewert

Die Anzahl der zum Lesen verfügbaren Bytes.

Beispielcode

Beispielcode 1

Der folgende Code gibt ein Zeichen zurück, das über die serielle Schnittstelle empfangen wurde.

int incomingByte = 0; // Für eingehende serielle Daten void setup() { Serial.begin(9600); // Öffnet die serielle Schnittstelle und stellt die Datenrate auf 9600 Bit/s ein } void loop() { // Daten nur senden, wenn Daten erhalten: if (Serial.available() > 0) { // Lies das eingehende Byte: incomingByte = Serial.read(); // Ausgeben: Serial.print("I received: "); Serial.println((char)incomingByte, DEC); } }
  • Type "HELLO" on Serial Monitor and click Send button:
  • COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  • Das ergebnis am seriellen monitor:
  • COM6
    Send
    I received: H I received: E I received: L I received: L I received: O I received:
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

Beispielcode 2

const int BUFFER_SIZE = 5; char buf[BUFFER_SIZE]; // application buffer void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { // check if data is available int rxlen = Serial.available(); // number of bytes available in Serial buffer if (rxlen > 0) { int rlen; // number of bytes to read if (rxlen > BUFFER_SIZE) // check if the data exceeds the buffer size rlen = BUFFER_SIZE; // if yes, read BUFFER_SIZE bytes. The remaining will be read in the next time else rlen = rxlen; // read the incoming bytes: rlen = Serial.readBytes(buf, rlen); // TODO: PROCESS THE INCOMING DATA HERE } }

Arduino Mega Beispiel:

Dieser Code sendet Daten, die über einen seriellen Port des Arduino Mega empfangen werden, an einen anderen. Dies kann zum Beispiel verwendet werden, um ein serielles Gerät über das Arduino-Board an den Computer anzuschließen.

void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { // Von Port 0 lesen, an Port 1 senden: if (Serial.available()) { int inByte = Serial.read(); Serial1.print(inByte, DEC); } // Von Port 1 lesen, an Port 0 senden: if (Serial1.available()) { int inByte = Serial1.read(); Serial.print(inByte, DEC); } }

※ Anmerkungen und Warnungen:

Serial functions are not only used for the communication between an Arduino board and Serial Monitor of Arduino IDE but also used for the communication between:

  • An Arduino board and other Arduino board
  • An Arduino board and other sensors/devices
  • An Arduino board and computer (any Serial software on computer)

Siehe Auch

ARDUINO KAUFEMPFEHLUNG

Arduino UNO R3
Arduino Starter Kit
Bitte Beachten: Dies sind Partnerschaftslinks. Wenn Sie die Komponenten über diese Links Kaufen, können wir eine Provision erhalten, ohne weitere Kosten für Sie. Wir Schätzen es.

※ UNSERE BOTSCHAFTEN