Serial.readBytesUntil() Fungsi dalam Pengaturcaraan Arduino

Serial Readbytesuntil Fungsi Dalam Pengaturcaraan Arduino



Apabila bercakap tentang pengaturcaraan dengan Arduino, terdapat banyak fungsi yang boleh anda gunakan untuk memanipulasi input dan output. Satu fungsi utama Arduino ialah Serial.readBytesUntil() , yang membolehkan anda membaca data daripada aliran sehingga aksara tertentu ditemui. Fungsi ini membantu membaca data daripada peranti bersiri sehingga kami menemui data yang diperlukan.

Tulisan ini menyusun fungsi Serial.readBytesUntil() secara mendalam. Kami akan membincangkan apa itu, cara ia berfungsi, dan meliputi kod Arduino yang menerangkan cara menggunakannya dalam kod Arduino.

Serial.readBytesUntil()

Fungsi Serial.readBytesUntil() ialah sebahagian daripada kelas Serial Arduino. Fungsi ini membaca data daripada aliran sehingga ia menemui aksara tertentu atau bilangan bait maksimum. Setelah aksara atau bilangan bait maksimum ditemui, fungsi berhenti membaca dan mengembalikan data yang telah dibacanya.







Fungsi Serial.readBytesUntil() ditamatkan apabila syarat berikut dipenuhi:



  • Apabila fungsi mengesan aksara terminator
  • Panjang penimbal yang ditentukan dicapai
  • Masa yang ditetapkan telah berlalu atau Masa tamat

Fungsi ini tidak mengembalikan aksara terminator ia hanya mengembalikan data sehingga aksara terakhir sebelum terminator. Apabila 0 dikembalikan oleh fungsi ini bermakna tiada data yang sah ditemui.



Sintaks

Fungsi Serial.readBytesUntil() mempunyai sintaks berikut:





bersiri. readBytesUntil ( char terminator, char * penampan, saiz_t panjang ) ;

Parameter

Berikut ialah parameter fungsi Serial.readBytesUntil():

  • Watak Terminator: Watak yang fungsinya akan berhenti membaca.
  • penimbal: Dalam penimbal data bersiri yang dibaca ialah Jenis data yang dibenarkan ialah tatasusunan char atau bait.
  • panjang: Bilangan maksimum bait untuk dibaca. Jenis data yang dibenarkan ialah int .

Kembali

Bilangan bait yang diletakkan dalam penimbal.



Nota: Dalam data pulangan, aksara terminator dibuang oleh fungsi Serial.readBytesUntil() daripada aliran data.

Contoh Kod Arduino

Mengikuti kod Arduino terangkan penggunaan Serial.readBytesUntil() fungsi:

batal persediaan ( ) {
bersiri. bermula ( 9600 ) ; // Mulakan sambungan bersiri dengan kadar baud 9600
}

batal gelung ( ) {
penimbal bait [ 5 ] ; // Tentukan tatasusunan bait untuk menyimpan data masuk
int numBytes = bersiri. readBytesUntil ( ' \n ' , penimbal, 5 ) ; // Baca data masuk daripada sambungan bersiri sehingga aksara baris baharu ditemui

jika ( numBytes > 0 ) { // Semak sama ada sebarang bait telah dibaca
bersiri. cetak ( 'Watak yang Diterima:' ) ;
bersiri. menulis ( penimbal, numBytes ) ; // Cetak data yang diterima ke monitor bersiri
bersiri. println ( ) ;
}
}

Dalam setup() fungsi baud rate akan mewujudkan komunikasi bersiri.

Dalam fungsi gelung(), kita mula-mula menentukan tatasusunan bait yang dipanggil 'penampan' . Tatasusunan ini akan digunakan untuk menyimpan data masuk yang dibaca daripada sambungan bersiri.

Seterusnya, kami memanggil Serial.readBytesUntil() fungsi, yang membaca data masuk daripada sambungan bersiri sehingga ia menemui aksara baris baharu (ā€˜\nā€™). Argumen seterusnya ialah panjang penimbal yang akan mengambil maksimum 5 bait data pada satu masa.

Bait yang dikembalikan disimpan dalam 'numBytes' pembolehubah. Sekiranya data yang diterima lebih besar daripada panjang penimbal, data akan ditamatkan dan akan dihantar dalam aliran data seterusnya.

Pengeluaran

Kesimpulan

The Serial.readBytesUntil() fungsi dalam pengaturcaraan Arduino membaca bait daripada aliran input bersiri sehingga aksara terminator tertentu diterima. Fungsi ini memberikan jumlah bait dibaca dan menyimpannya dalam penimbal yang disediakan. Baca artikel untuk mendapatkan maklumat lanjut berkaitan dengan Fungsi Serial.readBytesUntil().