Funkcija Serial.readBytesUntil() Arduino programmēšanā

Funkcija Serial Readbytesuntil Arduino Programmesana



Runājot par programmēšanu ar Arduino, ir daudzas funkcijas, kuras varat izmantot, lai manipulētu ar ievadi un izvadi. Viena no galvenajām Arduino funkcijām ir Serial.readBytesUntil() , kas ļauj nolasīt datus no straumes, līdz tiek atrasta konkrēta rakstzīme. Šī funkcija palīdz nolasīt datus no seriālām ierīcēm, līdz atrodam nepieciešamos datus.

Šis ieraksts padziļināti apkopo funkciju Serial.readBytesUntil(). Mēs apspriedīsim, kas tas ir, kā tas darbojas, un aptversim Arduino kodu, kas izskaidro, kā to izmantot Arduino kodā.

Serial.readBytesUntil()

Funkcija Serial.readBytesUntil() ir daļa no Arduino sērijas klases. Šī funkcija nolasa datus no straumes, līdz atrod noteiktu rakstzīmi vai maksimālo baitu skaitu. Kad ir atrasta rakstzīme vai maksimālais baitu skaits, funkcija pārtrauc lasīšanu un atgriež nolasītos datus.







Funkcija Serial.readBytesUntil() tiek pārtraukta, ja tiek izpildīti šādi nosacījumi:



  • Kad funkcija nosaka terminatora rakstzīmi
  • Ir sasniegts noteiktais bufera garums
  • Iestatītais laiks ir pagājis vai Time out

Šī funkcija neatgriež beigu rakstzīmi, tā atgriež tikai datus līdz pēdējai rakstzīmei pirms terminatora. Ja šī funkcija atgriež 0, tas nozīmē, ka nav atrasti derīgi dati.



Sintakse

Funkcijai Serial.readBytesUntil() ir šāda sintakse:





Seriāls. readBytesUntil ( char terminators, char * buferis, izmērs_t garums ) ;

Parametri

Tālāk ir norādīti funkcijas Serial.readBytesUntil() parametri:

  • Terminatora varonis: Rakstzīme, pie kuras funkcija pārtrauks lasīt.
  • buferis: Buferī lasāmie sērijas dati ir Atļautais datu tips ir rakstzīmju vai baitu masīvs.
  • garums: Maksimālais lasāmo baitu skaits. Atļautais datu tips ir starpt .

Atgriezties

Buferī ievietoto baitu skaits.



Piezīmes: Atgrieztajos datos terminatora rakstzīmi no datu straumes izmet funkcija Serial.readBytesUntil().

Arduino koda piemērs

Pēc Arduino koda paskaidrojiet izmantošanu Serial.readBytesUntil() funkcija:

nederīgs uzstādīt ( ) {
Seriāls. sākt ( 9600 ) ; // Inicializējiet seriālo savienojumu ar datu pārraides ātrumu 9600
}

nederīgs cilpa ( ) {
baitu buferis [ 5 ] ; // Definējiet baitu masīvu ienākošo datu glabāšanai
starpt numbytes = Seriāls. readBytesUntil ( ' \n ' , buferis, 5 ) ; // Lasīt ienākošos datus no seriālā savienojuma, līdz tiek atrasta jaunrindas rakstzīme

ja ( numbytes > 0 ) { // Pārbaudiet, vai ir nolasīti baiti
Seriāls. drukāt ( 'Saņemtais varonis:' ) ;
Seriāls. rakstīt ( buferis, baitu skaits ) ; // Izdrukājiet saņemtos datus seriālajā monitorā
Seriāls. println ( ) ;
}
}

Funkcijā setup() bodu ātrums izveidos seriālo saziņu.

Funkcijā loop () mēs vispirms definējam izsaukto baitu masīvu 'buferis' . Šis masīvs tiks izmantots, lai saglabātu ienākošos datus, kas nolasīti no seriālā savienojuma.

Tālāk mēs saucam par Serial.readBytesUntil() funkcija, kas nolasa ienākošos datus no seriālā savienojuma, līdz tiek parādīta jaunas rindiņas rakstzīme ('\n'). Nākamais arguments ir bufera garums, kas vienlaikus aizņems ne vairāk kā 5 baitus datu.

Atgrieztais baits tiek saglabāts mapē “numbytes” mainīgs. Gadījumā, ja saņemtie dati ir lielāki par bufera garumu, dati tiks pārtraukti un tiks nosūtīti nākamajā datu plūsmā.

Izvade

Secinājums

The Serial.readBytesUntil() Arduino programmēšanas funkcija nolasa baitus no sērijas ievades straumes, līdz tiek saņemta norādītā beigu rakstzīme. Funkcija nolasa kopējos baitus un saglabā tos nodrošinātajā buferī. Izlasiet rakstu, lai iegūtu papildinformāciju par funkciju Serial.readBytesUntil().