اطلاعیه

Collapse
No announcement yet.

مشکل ارتباط دو میکرو از طریق وقفه سریال

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل ارتباط دو میکرو از طریق وقفه سریال

    سلام
    من میخوام از وقفه در ارتباط سریال استفاده کنم.
    اما اینجا یه مشکلی دارم، توی تابع وقفه کد زیر رو گذاشتم که بافر رو بخونم، اما دیتاها مشکل دارن.
    کد:
    for (int s=0;s<rx_wr_index;s++)str[s]=rx_buffer[s];
    میکرویی که دیتا ارسال می کنه بعد از هر ارسال یه \n میفرسته، حالا من بافر رو میخونم این \n هم اعمال میشه و توی ال سی دی یه خط میره پایین، اومدم دوباره نوشتم اگه به /۰ که انتهای رشته است رسیدی دیگه چیزی تو متغییر نزار.
    این بار در دریافت اول درسته، اما در ارسال دوم ، اون دیتاهایی رو که از بافر نخوندم میاره اول دریافت دوم میزاره، یعنی دریافت دومم شامل اول \n و بعدش کدی که دریافت کردم هستش.
    الان دوباره اومدم بعد از این که دیتا ها رو خوندم دوباره با دستور زیر بافر رو خالی کردم، ولی بازم کار نمی کنه.
    کد:
    for (s=0;s<256;s++)rx_buffer[s]=NULL;
    جالب اینه که من چون دیتاهای دریافتی همشون 10 کاراکتری هستن اومدم دستور اول رو اینطوری نوشتم:
    کد:
    for (int s=0;s<10;s++)str[s]=rx_buffer[s];
    ولی بازم درست نشد.
    1- کسی میدونه مشکل از چیه؟
    2- یه برنامه نمونه برای دریافت رشته از وقفه سریال، اگه ممکنه.
لطفا صبر کنید...
X