PDA

View Full Version : مشکل در برنامه دریافت از پورت سریال



iman-63
پنج شنبه 18 فروردین 1390, 23:36 عصر
با سالم به همه دوستان.

یه برنامه با میکرو نوشتم که 4 بایت (هر کدام بین 0 تا 255) رو برای کامپیوتر ارسال میکنه.
برنامه pc رو هم اینطور پیکر بندی کردم.



public byte[] received = new byte[4];

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.Read(received, 0, received.Length);
}

private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = Convert.ToString(received[0]);
label2.Text = Convert.ToString(received[1]);
label3.Text = Convert.ToString(received[2]);
label4.Text = Convert.ToString(received[3]);
}


مشکل اینجاست که بایت ها در بعضی مواقع قاطی میشن. بنظر شما مشکل از کجاست.
(یکسان بودن بادریت و .... رعایت شده)

unknown.unforgiven
جمعه 19 فروردین 1390, 10:04 صبح
سلام
تو میکرو اون 4 بایت ارسالی رو یه جا فرستادی یا با 4 تا دستور فرستادی؟ اگه همه رو با هم فرستادی از دستور زیر استفاده کن
serialPort1.ReadExisting();
اگر هم اون 4 بایت رو با 4 بار ارسال نوشتی باید رویداد DataReceived رو جوری تغییر بدی که توی هر سری دریافت، برنامه بفهمه که داره کدوم درایه رو دریافت میکنه و اون درایه رو تو جای صحیحش توی آرایه قرار بده

iman-63
جمعه 19 فروردین 1390, 11:18 صبح
اون چهار بات رو با چها دستور جداگانه و پشت سرهم (بدن تاخیر) ارسال میکنم. پس بگفته شما یه شمارنده توی روال DataReceived بذارم و در هربار دریافت اونو توی خونه مورد نظر آرایه بچینم. OK.