SerialPort Veri Alma Gönderme

Başlatan ds01, 01 Şubat 2016, 01:12:28

ds01

Merhaba, uart'tan veri alıp göndermekteyim. Veri gönderirken;
          if (_serialPort.IsOpen)
            {
                Byte[] ch = new Byte[1];
                ch[0] = (byte)e.KeyChar;
                _serialPort.Write(ch, 0, 1);
            }
tek karakter olarak gönderip alabiliyorum. Ancak bir string ifadesi yolladığımda gelen kod birer karakter eksik geliyor. Örneğin;
abcdefg yolluyorum aceg geliyor.

Karşıladığım kod;
    private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {

            int bytes = _serialPort.BytesToRead;
            byte[] buffer = new byte[bytes];
           
            rxString = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length);

            this.Invoke(new EventHandler(displayText));
           
           
        }

        private void displayText(object o, EventArgs e)
        {
            txtAlinacak.AppendText(rxString);
        }

Nerde hata yaptığımı anlayamadım, göderirken mi eksik gönderiyor. Alırken mi eksik alıyor yoksa yanlış mı karşılıyorum. Byte dizisi gönderince de yine birer atlayarak eksik geliyor..
Şimdiden teşekkürler.

yldzelektronik

#1
Tam anlamadım.Ancak bence veri aldığınız yerde break point koyun ve debug da rx değişkeninizi kontrol edin.Dizi olanı.Eğer veriler düzgün geliyorsa diziyi stringe çevirirken patlıyordur.

Emin olmamak ile birlikte okuma kısmında hata ve/veya sorun olabilir.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

dursuncemal

verileri gonderirken   bir bitis anahtari tanimla mesela a5 5a  gibi alma islemi bitene kadar while icinde kal
:=