Serial.readBytesUntil() Function sa Arduino Programming

Serial Readbytesuntil Function Sa Arduino Programming



Pagdating sa programming gamit ang Arduino, maraming mga function na maaari mong gamitin upang manipulahin ang input at output. Ang isang pangunahing function ng Arduino ay Serial.readBytesUntil() , na nagbibigay-daan sa iyong magbasa ng data mula sa isang stream hanggang sa matagpuan ang isang partikular na character. Tinutulungan ng function na ito ang pagbabasa ng data mula sa mga serial device hanggang sa mahanap namin ang kinakailangang data.

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.