Serial.readBytesUntil() funkcija „Arduino“ programavime

Serial Readbytesuntil Funkcija Arduino Programavime



Kalbant apie programavimą naudojant „Arduino“, yra daug funkcijų, kurias galite naudoti norėdami valdyti įvestį ir išvestį. Viena iš pagrindinių Arduino funkcijų yra Serial.readBytesUntil() , kuri leidžia skaityti duomenis iš srauto, kol randamas konkretus simbolis. Ši funkcija padeda nuskaityti duomenis iš serijinių įrenginių, kol randame reikiamus duomenis.

Šis įrašas nuodugniai sukompiliuoja funkciją Serial.readBytesUntil(). Aptarsime, kas tai yra, kaip jis veikia, ir apimsime Arduino kodą, paaiškinantį, kaip jį naudoti Arduino kode.

Serial.readBytesUntil()

Funkcija Serial.readBytesUntil() yra Arduino Serial klasės dalis. Ši funkcija nuskaito duomenis iš srauto, kol randa konkretų simbolį arba maksimalų baitų skaičių. Kai randamas simbolis arba maksimalus baitų skaičius, funkcija nustoja skaityti ir grąžina perskaitytus duomenis.







Funkcija Serial.readBytesUntil() nutrūksta, kai įvykdomos šios sąlygos:



  • Kai funkcija aptinka terminatoriaus simbolį
  • Pasiektas nustatytas buferio ilgis
  • Nustatytas laikas praėjo arba baigėsi

Ši funkcija nepateikia terminatoriaus simbolio, o tik pateikia duomenis iki paskutinio simbolio prieš terminą. Kai ši funkcija grąžina 0, tai reiškia, kad tinkamų duomenų nerasta.



Sintaksė

Funkcija Serial.readBytesUntil() turi tokią sintaksę:





Serijinis. readBytesUntil ( char terminatorius, char * buferis, dydis_t ilgio ) ;

Parametrai

Toliau pateikiami funkcijos Serial.readBytesUntil() parametrai:

  • Terminatoriaus personažas: Simbolis, nuo kurio funkcija nustos skaityti.
  • buferis: Buferyje nuskaitomi serijiniai duomenys. Leidžiamas duomenų tipas yra simbolių arba baitų masyvas.
  • ilgis: Didžiausias skaitomų baitų skaičius. Leidžiamas duomenų tipas yra tarpt .

Grįžti

Į buferį įdėtų baitų skaičius.



Pastabos: Grąžinamuose duomenyse terminatoriaus simbolį iš duomenų srauto išmeta funkcija Serial.readBytesUntil().

Arduino kodo pavyzdys

Po Arduino kodo paaiškinkite naudojimą Serial.readBytesUntil() funkcija:

tuštuma sąranka ( ) {
Serijinis. pradėti ( 9600 ) ; // Inicijuoti nuoseklųjį ryšį naudojant 9600 duomenų perdavimo spartą
}

tuštuma kilpa ( ) {
baitų buferis [ 5 ] ; // Apibrėžkite baitų masyvą gaunamiems duomenims saugoti
tarpt baitų skaičius = Serijinis. readBytesUntil ( ' \n ' , buferis, 5 ) ; // Skaityti gaunamus duomenis iš nuosekliojo ryšio, kol atsiranda naujos eilutės simbolis

jeigu ( baitų skaičius > 0 ) { // Patikrinkite, ar buvo nuskaityti baitai
Serijinis. spausdinti ( „Gautas veikėjas:“ ) ;
Serijinis. rašyti ( buferis, baitų skaičius ) ; // Išspausdinkite gautus duomenis į serijinį monitorių
Serijinis. println ( ) ;
}
}

Funkcijoje setup() sparta bodais užmegs nuoseklųjį ryšį.

Funkcijoje loop () pirmiausia apibrėžiame baitų masyvą, vadinamą 'buferis' . Šis masyvas bus naudojamas įeinantiems duomenims, nuskaitytiems iš nuoseklaus ryšio, saugoti.

Toliau mes vadiname Serial.readBytesUntil() funkcija, kuri nuskaito gaunamus duomenis iš nuoseklaus ryšio, kol susiduria su naujos eilutės simboliu („\n“). Kitas argumentas yra buferio ilgis, kuris vienu metu užims ne daugiau kaip 5 baitus duomenų.

Grąžintas baitas saugomas „skaičiusbaitai“ kintamasis. Tuo atveju, jei gaunami duomenys yra didesni už buferio ilgį, duomenys bus nutraukti ir siunčiami kitame duomenų sraute.

Išvestis

Išvada

The Serial.readBytesUntil() Arduino programavimo funkcija nuskaito baitus iš nuoseklaus įvesties srauto, kol gaunamas nurodytas terminatoriaus simbolis. Funkcija nuskaito bendrą baitų skaičių ir išsaugo juos numatytame buferyje. Perskaitykite straipsnį, kad gautumėte daugiau informacijos apie funkciją Serial.readBytesUntil().