Fungsi Serial.readBytesUntil() dalam Pemrograman Arduino

Fungsi Serial Readbytesuntil Dalam Pemrograman Arduino



Ketika datang ke pemrograman dengan Arduino, ada banyak fungsi yang dapat Anda gunakan untuk memanipulasi input dan output. Salah satu fungsi utama Arduino adalah Serial.readBytesUntil() , yang memungkinkan Anda membaca data dari aliran hingga karakter tertentu ditemukan. Fungsi ini membantu membaca data dari perangkat serial hingga kami menemukan data yang diperlukan.

Langganan ini mengkompilasi fungsi Serial.readBytesUntil() secara mendalam. Kami akan membahas apa itu, cara kerjanya, dan membahas kode Arduino yang menjelaskan cara menggunakannya dalam kode Arduino.

Serial.readBytesUntil()

Fungsi Serial.readBytesUntil() adalah bagian dari kelas Arduino Serial. Fungsi ini membaca data dari aliran hingga menemukan karakter tertentu atau jumlah maksimum byte. Setelah karakter atau jumlah maksimum byte ditemukan, fungsi berhenti membaca dan mengembalikan data yang telah dibaca.







Fungsi Serial.readBytesUntil() berakhir setiap kali kondisi berikut terpenuhi:



  • Ketika fungsi mendeteksi karakter terminator
  • Panjang buffer yang ditentukan tercapai
  • Waktu yang ditetapkan telah berlalu atau Waktu habis

Fungsi ini tidak mengembalikan karakter terminator, melainkan hanya mengembalikan data hingga karakter terakhir sebelum terminator. Ketika 0 dikembalikan oleh fungsi ini berarti tidak ada data yang valid ditemukan.



Sintaksis

Fungsi Serial.readBytesUntil() memiliki sintaks berikut:





Serial. readBytesSampai ( arang terminasi, arang * penyangga, size_t panjang ) ;

Parameter

Berikut adalah parameter dari fungsi Serial.readBytesUntil():

  • Karakter Terminator: Karakter di mana fungsi akan berhenti membaca.
  • penyangga: Dalam buffer, data serial yang dibaca adalah Tipe data yang diizinkan adalah larik char atau byte.
  • panjang: Jumlah maksimum byte untuk dibaca. Tipe data yang diperbolehkan adalah int .

Kembali

Jumlah byte yang ditempatkan di buffer.



Catatan: Dalam data yang dikembalikan, karakter terminator dibuang oleh fungsi Serial.readBytesUntil() dari aliran data.

Contoh Kode Arduino

Mengikuti kode Arduino menjelaskan penggunaan Serial.readBytesUntil() fungsi:

ruang kosong mempersiapkan ( ) {
Serial. mulai ( 9600 ) ; // Inisialisasi koneksi serial dengan baud rate 9600
}

ruang kosong lingkaran ( ) {
penyangga byte [ 5 ] ; // Tentukan array byte untuk menyimpan data yang masuk
int numBytes = Serial. readBytesSampai ( ' \N ' , penyangga, 5 ) ; // Baca data yang masuk dari koneksi serial hingga ditemukan karakter baris baru

jika ( numBytes > 0 ) { // Periksa apakah ada byte yang dibaca
Serial. mencetak ( 'Karakter yang Diterima:' ) ;
Serial. menulis ( buffer, numBytes ) ; // Cetak data yang diterima ke monitor serial
Serial. println ( ) ;
}
}

Dalam fungsi setup() baud rate akan membangun komunikasi serial.

Dalam fungsi loop(), pertama-tama kita mendefinisikan array byte yang dipanggil 'penyangga' . Array ini akan digunakan untuk menyimpan data masuk yang dibaca dari koneksi serial.

Selanjutnya, kita memanggil Serial.readBytesUntil() fungsi, yang membaca data yang masuk dari koneksi serial hingga menemukan karakter baris baru ('\n'). Argumen selanjutnya adalah panjang buffer yang akan mengambil maksimal 5 byte data sekaligus.

Byte yang dikembalikan disimpan di 'numBytes' variabel. Jika data yang diterima lebih besar dari panjang buffer, data akan dihentikan dan akan dikirim dalam aliran data berikutnya.

Keluaran

Kesimpulan

Itu Serial.readBytesUntil() fungsi dalam pemrograman Arduino membaca byte dari aliran input serial hingga karakter terminator yang ditentukan diterima. Fungsi memberikan total byte yang dibaca dan menyimpannya dalam buffer yang disediakan. Baca artikel untuk mendapatkan informasi lebih lanjut terkait Fungsi Serial.readBytesUntil().