Stellaris ve C# haberleşmesi

Başlatan ArifAhmet, 02 Kasım 2014, 22:56:41

ArifAhmet

Merhabalar,
seriport1'den data alıp Seri porttan bir data gönderiyorum. Bunu c#'tan alacağım fakat ne hikmetse c# kısmında datanın geldiği ile ilgili hiç bir iz yok. Data_received metoduna breakpoint koyuyorum, datayı yolluyorum ama metoda düşmüyor. Baudrate, comport falan hepsi tamam. Stellaris için Energia kullanıyorum. Acaba neyi yanlış yapıyorum?
Yaşasın Open Source!

muhendisbey

#1
c# dışında terminal programında veri alabiliyor musun?
Energia çoğunlukla sıkıntı çıkarıyor. Arduino'da çalışan komut orada çalışmıyor/çalışmayabiliyor. Bence realterm yada putty gibi bir programla test et önce, sonra c#'a geç.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

ArifAhmet

test ettim hocam, değişen bişey yok. Yani terminalen veriyi alıyorum. Kite veri yollayabiliyorum ama veri gelmiyor.
Yaşasın Open Source!

Gökhan BEKEN

Özel mesaj okumuyorum, lütfen göndermeyin.

ArifAhmet

Biliyorum hocam, onu halletmiştim zaten.
Yaşasın Open Source!

Gökhan BEKEN

Ozaman kodları görelim, bir eksik vardır mutlaka.
Özel mesaj okumuyorum, lütfen göndermeyin.

ArifAhmet

Kodlar burada;
  private void ConnectCom_Click(object sender, EventArgs e)
        {
            if (ComList.SelectedItem.ToString() != string.Empty) 
            { 
                serialPort = new SerialPort(ComList.SelectedItem.ToString(), 9600);
                if (!serialPort.IsOpen) serialPort.Open();
                else MessageBox.Show("Port Zaten Kullanılıyor");
            }
            else MessageBox.Show("Lütfen bir port seçin");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (string item in SerialPort.GetPortNames()) ComList.Items.Add(item);

            serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
        }

        void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            ReciveManualData.Text += serialPort.ReadExisting();
        }

        private void SendManualData_Click(object sender, EventArgs e)
        {
            serialPort.Write("Test");
           // serialPort.Write("!");
        }
Yaşasın Open Source!

Gökhan BEKEN

#7
Şu şekilde çalışması lazım sizin kodlara uyarlayıp denermisiniz:
void seri_port_baglan()
 
{
 
if (serialPort1.IsOpen) 
{
MessageBox.Show("Port Açık Bulunmaktadır..", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button3);
 
return;
}
 
else
 
{
 
try
 
{
 
serialPort1.BaudRate = int.Parse("9600"); // Hız olarak 9600 verdik.
 
serialPort1.DataBits = int.Parse("8"); // Veri bit ini de 8 bit olarak verdik
 
serialPort1.StopBits = System.IO.Ports.StopBits.One; // Durma bitini tek sefer olarak verdik.
 
serialPort1.Parity = Parity.None; // eşlik bit ini vermedik.
 
serialPort1.PortName = comboBox1.Text; // Port adlarını comboboxtan alıyoruz.
 
serialPort1.Open(); // Bağlantıyı açıyoruz
 
MessageBox.Show("Bağlantı Başarılı");
 
}
 
catch (Exception) // Herhangi bir hata anında alttaki hata mesajını alacağız..
 
{
 
MessageBox.Show("cihazınız bağlı değil...", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button3);
 
}
 
}
 
}

void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
MessageBox.Show("Gelen veri:" serialPort1.ReadExisting());
 
}
Özel mesaj okumuyorum, lütfen göndermeyin.