Funktsioon Serial.readBytesUntil() Arduino programmeerimises

Funktsioon Serial Readbytesuntil Arduino Programmeerimises



Arduinoga programmeerimisel on palju funktsioone, mida saate kasutada sisendi ja väljundi manipuleerimiseks. Üks Arduino põhifunktsioone on Serial.readBytesUntil() , mis võimaldab lugeda andmeid voost kuni konkreetse märgi leidmiseni. See funktsioon aitab lugeda andmeid jadaseadmetest, kuni leiame vajalikud andmed.

See kirjutis koostab funktsiooni Serial.readBytesUntil() põhjalikult. Arutame, mis see on, kuidas see töötab, ja katame Arduino koodi, mis selgitab, kuidas seda Arduino koodis kasutada.

Serial.readBytesUntil()

Funktsioon Serial.readBytesUntil() on osa Arduino jadaklassist. See funktsioon loeb andmeid voost, kuni see leiab kindla märgi või maksimaalse arvu baite. Kui märk või maksimaalne baitide arv on leitud, lõpetab funktsioon lugemise ja tagastab loetud andmed.







Funktsioon Serial.readBytesUntil() lõpeb, kui on täidetud järgmised tingimused:



  • Kui funktsioon tuvastab terminaatori märgi
  • Määratud puhvri pikkus on saavutatud
  • Määratud aeg on möödas või Time out

See funktsioon ei tagasta terminaatorimärki, vaid tagastab andmed kuni viimase märgini enne terminaatorit. Kui see funktsioon tagastab 0, tähendab see, et kehtivaid andmeid ei leitud.



Süntaks

Funktsioonil Serial.readBytesUntil() on järgmine süntaks:





Sari. readBytesUntil ( char terminaator, char * puhver, suurus_t pikkus ) ;

Parameetrid

Funktsiooni Serial.readBytesUntil() parameetrid on järgmised:

  • Terminaatori tegelane: Tähemärk, mille juures funktsioon lugemise lõpetab.
  • puhver: Puhvris loetakse jadaandmeid Lubatud andmetüüp on tähemärkide või baitide massiiv.
  • pikkus: Lugetavate baitide maksimaalne arv. Lubatud andmetüüp on int .

Tagasi

Puhvrisse paigutatud baitide arv.



Märkused: Tagastusandmetes loobub terminaatori märk andmevoost funktsiooni Serial.readBytesUntil() abil.

Arduino koodi näide

Järgnev Arduino kood selgitab selle kasutamist Serial.readBytesUntil() funktsioon:

tühine seadistamine ( ) {
Sari. alustada ( 9600 ) ; // Initsialiseerige jadaühendus edastuskiirusega 9600
}

tühine silmus ( ) {
baitpuhver [ 5 ] ; // Määratlege sissetulevate andmete salvestamiseks baidimassiv
int numbytes = Sari. readBytesUntil ( ' \n ' , puhver, 5 ) ; // Loe jadaühendusest sissetulevaid andmeid, kuni tekib uusrea märk

kui ( numbytes > 0 ) { // Kontrollige, kas baite loeti
Sari. printida ( 'Saadud tegelane:' ) ;
Sari. kirjutada ( puhver, numbytes ) ; // Vastuvõetud andmete printimine jadamonitorile
Sari. println ( ) ;
}
}

Funktsioonis setup() loob edastuskiirus jadaside.

Funktsioonis loop() määratleme esmalt baitimassiivi, mida kutsutakse 'puhver' . Seda massiivi kasutatakse jadaühendusest loetud sissetulevate andmete salvestamiseks.

Järgmisena kutsume Serial.readBytesUntil() funktsioon, mis loeb jadaühendusest sissetulevaid andmeid, kuni see kohtab reavahetusmärki ('\n'). Järgmine argument on puhvri pikkus, mis võtab korraga maksimaalselt 5 baiti andmeid.

Tagastatud bait salvestatakse faili 'numbytes' muutuv. Kui vastuvõetud andmed on suuremad kui puhvri pikkus, siis andmed lõpetatakse ja saadetakse järgmises andmevoos.

Väljund

Järeldus

The Serial.readBytesUntil() Arduino programmeerimise funktsioon loeb baite jadasisendvoost, kuni saadakse määratud terminaator. Funktsioon annab loetud baitide koguarvu ja salvestab need ettenähtud puhvrisse. Funktsiooni Serial.readBytesUntil() kohta lisateabe saamiseks lugege artiklit.