C# serial port sorunu

Başlatan yamak, 13 Temmuz 2011, 15:37:32

yamak

Merhaba arkadaşlar.
Elimde iki adet kit var biri mcb1700 diğeri ise ti ın DK- lm3s9b96.mcb 1700 ile yaptığım seri port uygulamasında c# da yazdığım bir program aracığılıyla gelen verileri sorunsuz bir şekilde okuyabiliyorum.Bu uygulamada ise seri port usb dönüştürücü kablo kullandım.Fakat DK-lm3s9b96 kitinde yapıtğım uygulamada ise seri porttan işlemciye veri gönderebiliyorum fakat okuyamıyorum.win xp seri port terminalinde ise verilerin düzgün  bir şekile geldiğini görüyorum. bu kitin mcb 1700 den tek farkı ftdi entegresinin kitin üzerinde olması. yani harici olarak bi dönüştürücü kullanmam gerekmiyo. Bu sorun neyden kaynaklanabilir. c# kodlarına farklı bir kod mu eklemem gerekir?

yamak

Bu sorun hakkındaki bilgisi olan yok mu? :-\

CoşkuN

İşlemciye veri gönderebiliyorsan bağlantı çalışıyor demektir. Okuma yapamıyor olması gönderme hattında bir sorun olabileceğini gösteriyor. Bir jumper felan eksik olmasın board üzerinde?

yamak

Ama win xp hyper terminal programına sorunsuz gönderiyo

dumansiz

Farklı modüllerden aynı bilgisayar yazılımına seri port üzerinden bilgi gönderiyorsunuz. Bir modülden gönderdiğinizi yazdığınız bilgisayar yazılımında görüyorsunuz ; ama diğer modülden gönderdiğinizi bilgisayar yazılımında göremiyorsunuz. Ama hazır seriport dinleme programlarında modülden gönderdiğiniz verileri görüyorsunuz. Bu durumda Modülden gönderme yaptığınız fonksiyon ile bilgisayardan alım yaptığınız fonksiyon arasında uyumsuzluk olabilir.
Örneğin ; Bilgisayar yazılımında seri porttan veri alma işlemini "ReadLine()" fonksiyonu ile yapıyorsunuz.
1.Modülden veri gönderirken "WriteLine()" fonksiyonu ile doğru şekilde gönderiyorsunuz.
2.Modülden veri gönderirken "Write()" fonksiyonu ile yanlış şekilde gönderiyorsunuz. Çünkü bilgisayar yazılımı satır sonu karakteri bekliyor.

yamak

İki mcu nun programını da ben yazdım ikisi de aynı şekilde.

kudretuzuner

Merhaba
PIC tarafında ve de PC tarafında ufak değişiklik yaparak(C# bilmediğimden kodları bilmiyorum)Dataları WriteLıne() şeklinde değil de müstakil tek byte olarak yollayıp alsanız sorunu daha kolay farkedersiniz gibi geliyor bana.
Amatör

yamak

Bana bir işlemciden gönderiip diğer işlemciden gönderememe saçma gelio. hem hyper terminalde de iki işlemciden gelen datayı okuyabiliyorum.

mir_as82

Arkadaşım kodunun içine" this.Dispatc.."    ile başlayan satırı ekle. Bak bakalım olacak mı.

private void seriport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            byte a;
            sayac++;
            a = (byte)seriport.ReadByte();
            if (a == 0)
            { sayac = 0; }
            else if (sayac == 15)
            { sayac = 0; }

            received[sayac] = a;
                   
            this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, new UpdateUI(Updating));
        }

Ali_54

veri gönderimini bende yapar durumdayım. ancak form uygulamasında veri alma işini (mesela geleni alıp textboxa yazma) yapamıyorum. bununla ilgili olan kod paylaşabilir misiniz??
1 harf öğretenin 4 gün kölesi olurum.