Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Texas Instruments => Konuyu başlatan: ArifAhmet - 02 Kasım 2014, 22:56:41

Başlık: Stellaris ve C# haberleşmesi
Gönderen: ArifAhmet - 02 Kasım 2014, 22:56:41
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?
Başlık: Ynt: Stellaris ve C# haberleşmesi
Gönderen: muhendisbey - 02 Kasım 2014, 23:48:08
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ç.
Başlık: Ynt: Stellaris ve C# haberleşmesi
Gönderen: ArifAhmet - 03 Kasım 2014, 11:31:46
test ettim hocam, değişen bişey yok. Yani terminalen veriyi alıyorum. Kite veri yollayabiliyorum ama veri gelmiyor.
Başlık: Ynt: Stellaris ve C# haberleşmesi
Gönderen: Gökhan BEKEN - 03 Kasım 2014, 13:32:26
(http://s22.postimg.cc/8hsew9o9t/csharp_kesme_sorunu.png)
Başlık: Ynt: Stellaris ve C# haberleşmesi
Gönderen: ArifAhmet - 03 Kasım 2014, 21:00:49
Biliyorum hocam, onu halletmiştim zaten.
Başlık: Ynt: Stellaris ve C# haberleşmesi
Gönderen: Gökhan BEKEN - 03 Kasım 2014, 22:21:29
Ozaman kodları görelim, bir eksik vardır mutlaka.
Başlık: Ynt: Stellaris ve C# haberleşmesi
Gönderen: ArifAhmet - 03 Kasım 2014, 22:46:40
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("!");
        }
Başlık: Ynt: Stellaris ve C# haberleşmesi
Gönderen: Gökhan BEKEN - 03 Kasım 2014, 23:10:58
Ş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());

}