Ang writeup na ito ay pinagsama-sama ang Serial.readBytesUntil() function nang malalim. Tatalakayin natin kung ano ito, kung paano ito gumagana, at saklawin ang Arduino code na nagpapaliwanag kung paano ito gamitin sa Arduino code.
Serial.readBytesUntil()
Ang Serial.readBytesUntil() function ay bahagi ng Arduino Serial class. Ang function na ito ay nagbabasa ng data mula sa isang stream hanggang sa makahanap ito ng isang partikular na character o isang maximum na bilang ng mga byte. Kapag ang character o maximum na bilang ng mga byte ay natagpuan, ang function ay hihinto sa pagbabasa at ibabalik ang data na nabasa nito.
Ang Serial.readBytesUntil() function ay nagtatapos sa tuwing natutugunan ang mga sumusunod na kundisyon:
- Kapag natukoy ng function ang isang karakter ng terminator
- Naabot na ang tinukoy na haba ng buffer
- Ang nakatakdang oras ay lumipas o Times out
Hindi ibinabalik ng function na ito ang character ng terminator, nagbabalik lamang ito ng data hanggang sa huling character bago ang terminator. Kapag ang 0 ay ibinalik ng function na ito, nangangahulugan ito na walang nakitang wastong data.
Syntax
Ang Serial.readBytesUntil() function ay may sumusunod na syntax:
Serial. readBytesUntil ( char terminator, char * buffer, laki_t haba ) ;
Mga Parameter
Ang mga sumusunod ay ang mga parameter ng function na Serial.readBytesUntil():
- Karakter ng Terminator: Ang karakter na titigil sa pagbabasa ng function.
- buffer: Sa buffer ang nabasang serial data ay Ang pinapayagang uri ng data ay isang array ng char o byte.
- haba: Ang maximum na bilang ng mga byte na babasahin. Ang pinapayagang uri ng data ay int .
Bumalik
Ang bilang ng mga byte na inilagay sa buffer.
Mga Tala: Bilang return data, ang karakter ng terminator ay itinatapon ng function na Serial.readBytesUntil() mula sa stream ng data.
Halimbawa ng Arduino Code
Ang pagsunod sa Arduino code ay ipaliwanag ang paggamit ng Serial.readBytesUntil() function:
walang bisa setup ( ) {Serial. magsimula ( 9600 ) ; // Simulan ang serial connection na may baud rate na 9600
}
walang bisa loop ( ) {
byte buffer [ 5 ] ; // Tukuyin ang isang byte array upang iimbak ang papasok na data
int numBytes = Serial. readBytesUntil ( ' \n ' , buffer, 5 ) ; // Basahin ang papasok na data mula sa serial connection hanggang sa makatagpo ng bagong linyang character
kung ( numBytes > 0 ) { // Suriin kung may nabasang mga byte
Serial. print ( 'Natanggap na Character: ' ) ;
Serial. magsulat ( buffer, numBytes ) ; // I-print ang natanggap na data sa serial monitor
Serial. println ( ) ;
}
}
Sa setup() function na baud rate ay magtatatag ng serial communication.
Sa loop() function, una naming tinukoy ang isang byte array na tinatawag 'buffer' . Gagamitin ang array na ito upang iimbak ang papasok na data na nabasa mula sa serial connection.
Susunod, tinawag namin ang Serial.readBytesUntil() function, na nagbabasa ng papasok na data mula sa serial connection hanggang sa makatagpo ito ng newline na character (‘\n’). Ang susunod na argumento ay ang haba ng buffer na kukuha ng maximum na 5 bytes ng data sa isang pagkakataon.
Ang ibinalik na byte ay naka-imbak sa 'numBytes' variable. Sa kaso kung ang natanggap na data ay mas malaki kaysa sa haba ng buffer, ang data ay wawakasan at ipapadala sa susunod na stream ng data.
Output
Konklusyon
Ang Serial.readBytesUntil() Ang function sa Arduino programming ay nagbabasa ng mga byte mula sa isang serial input stream hanggang sa matanggap ang isang tinukoy na karakter ng terminator. Ang function ay nagbibigay ng kabuuang mga byte na nabasa at iniimbak ang mga ito sa isang ibinigay na buffer. Basahin ang artikulo upang makakuha ng higit pang impormasyon na nauugnay sa Serial.readBytesUntil() Function.