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?
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ç.
test ettim hocam, değişen bişey yok. Yani terminalen veriyi alıyorum. Kite veri yollayabiliyorum ama veri gelmiyor.
(http://s22.postimg.cc/8hsew9o9t/csharp_kesme_sorunu.png)
Biliyorum hocam, onu halletmiştim zaten.
Ozaman kodları görelim, bir eksik vardır mutlaka.
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("!");
}
Ş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());
}