Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Visual C# => Konuyu başlatan: ds01 - 01 Şubat 2016, 01:12:28

Başlık: SerialPort Veri Alma Gönderme
Gönderen: ds01 - 01 Şubat 2016, 01:12:28
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.
Başlık: Ynt: SerialPort Veri Alma Gönderme
Gönderen: yldzelektronik - 01 Şubat 2016, 01:26:54
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.
Başlık: Ynt: SerialPort Veri Alma Gönderme
Gönderen: dursuncemal - 01 Şubat 2016, 02:58:51
verileri gonderirken   bir bitis anahtari tanimla mesela a5 5a  gibi alma islemi bitene kadar while icinde kal