Serial.readBytesUntil()-funktion i Arduino-programmering

Serial Readbytesuntil Funktion I Arduino Programmering



När det kommer till programmering med Arduino finns det många funktioner som du kan använda för att manipulera in- och utdata. En huvudfunktion i Arduino är Serial.readBytesUntil() , som låter dig läsa data från en ström tills ett specifikt tecken hittas. Den här funktionen hjälper till att läsa data från seriella enheter tills vi hittar den data som krävs.

Denna uppskrivning kompilerar Serial.readBytesUntil()-funktionen på djupet. Vi kommer att diskutera vad det är, hur det fungerar och täcka Arduino-kod som förklarar hur man använder den i Arduino-kod.

Serial.readBytesUntil()

Funktionen Serial.readBytesUntil() är en del av klassen Arduino Serial. Denna funktion läser data från en ström tills den hittar ett specifikt tecken eller ett maximalt antal byte. När tecknet eller det maximala antalet byte har hittats, slutar funktionen läsa och returnerar den data som den har läst.







Funktionen Serial.readBytesUntil() avslutas när följande villkor är uppfyllda:



  • När funktion upptäcker ett terminatortecken
  • Den definierade buffertlängden har uppnåtts
  • Den inställda tiden har passerat eller Times out

Den här funktionen returnerar inte terminatortecknet, den returnerar bara data upp till det sista tecknet före terminatorn. När 0 returneras av denna funktion betyder det att ingen giltig data hittas.



Syntax

Funktionen Serial.readBytesUntil() har följande syntax:





Serie. readBytesUntil ( röding terminator, röding * buffert, storlek_t längd ) ;

Parametrar

Följande är parametrarna för funktionen Serial.readBytesUntil():

  • Terminator karaktär: Tecknet som funktionen slutar läsa på.
  • buffert: I bufferten är den lästa seriella data Den tillåtna datatypen är en array av char eller byte.
  • längd: Det maximala antalet byte att läsa. Den tillåtna datatypen är int .

Lämna tillbaka

Antalet byte placerade i bufferten.



Anmärkningar: I returdata kasseras terminatortecknet av funktionen Serial.readBytesUntil() från dataströmmen.

Exempel på Arduino-kod

Följande Arduino-kod förklarar användningen av Serial.readBytesUntil() fungera:

tomhet uppstart ( ) {
Serie. Börja ( 9600 ) ; // Initiera den seriella anslutningen med en baudhastighet på 9600
}

tomhet slinga ( ) {
byte buffert [ 5 ] ; // Definiera en byte-array för att lagra inkommande data
int antalByte = Serie. readBytesUntil ( ' \n ' , buffert, 5 ) ; // Läs inkommande data från serieanslutningen tills ett nyradstecken påträffas

om ( antalByte > 0 ) { // Kontrollera om några bytes lästes
Serie. skriva ut ( 'Mottagen karaktär: ' ) ;
Serie. skriva ( buffert, antalBytes ) ; // Skriv ut mottagen data till den seriella monitorn
Serie. println ( ) ;
}
}

I setup()-funktionen kommer baudraten att upprätta seriell kommunikation.

I loop()-funktionen definierar vi först en byte-array som kallas 'buffert' . Denna array kommer att användas för att lagra inkommande data som läses från serieanslutningen.

Därefter kallar vi Serial.readBytesUntil() funktion, som läser in inkommande data från serieanslutningen tills den stöter på ett nyradstecken ('\n'). Nästa argument är längden på bufferten som tar maximalt 5 byte data åt gången.

Den returnerade byten lagras i 'antalBytes' variabel. Om den mottagna datan är större än buffertlängden kommer data att avslutas och skickas i nästa dataström.

Produktion

Slutsats

De Serial.readBytesUntil() funktion i Arduino-programmering läser bytes från en seriell ingångsström tills ett specificerat terminatortecken tas emot. Funktionen ger totala bytes lästa och lagrar dem i en tillhandahållen buffert. Läs artikeln för att få mer information relaterad till Serial.readBytesUntil()-funktionen.