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.