Program, seri port ara belleğine gönderdiğimiz verinin ilk 6 baytını okur. Eğer ara bellekte hala veri varsa okuma işlemine devam edilir. Bunu önlemek için veri ekrana yazdırıldıktan sonra port aç-kapat yapılarak ara bellek temizlendi ve "gelenveri" dizisi de sıfırlandı. Fakat 6 baytın altında 12 baytın üstünde veri gönderdiğimizde düzgün çalışmıyor. Önceki veriler de geliyor. Bunun sebebi 1 bayt akışını birden fazla okuması olabilir. Uygulamamızda sonlandırma karakteri göndermemek için seri port ekranının altından "satır sonu yok" seçildi.
Program Kodları:
char gelenveri[12];
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0)
{
Serial.readBytes(gelenveri, 6); //seri porttan okunan verinin ilk 6 baytını al.
Serial.println(gelenveri);
gelenveri[0]='\0'; //diziyi 0. indisten başlayarak temizle.
Serial.end(); //Seri port kapatıldı.
Serial.begin(9600); //Seri port açıldı.
}
}
_____________________________________________________________________________________________________________________________________________________________

0 comments:
Yorum Gönder