NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3747 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 5 از 5

موضوع: پردازش داده ها دریافتی از uart

  1. #1
    کاربر فعال soodi آواتار ها
    تاریخ عضویت
    Jun 2010
    نام
    مسعود محمدی
    نوشته ها
    264
    تشکر
    111
    تشکر شده 296 بار در 138 پست

    پیش فرض پردازش داده های دریافتی از ماژول زیگبی ze10

    سلام دوستان

    من يکسري داده از ماژول فرستنده گيرندم (ZE10) دريافت ميکنم
    ماژول ها به پورت سريال ميکرو LPC1768 متصل هستند
    و براي دريافت هم از کتابخانه uart که براي برد آموزشي خود سايت و برد Landingtiger هست استفاده ميکنم
    داخل وقفه ي دريافت داده ها رو دريافت ميکنم و داخل main برنامه هم ارسال رو انجام ميدم
    خوب حالا مشکل اينجاست که:

    ماژول من وقتي ارسال انجام ميده (اگر ارسالش موفق باشه و گيرنده دريافت بکنه) يه پيام OK براي من بر ميگردونه که وقتي پيام OK رسيد برنامه وارد وقفه دريافت ميشه
    اگر پيام با موفقيت ارسال نشه يه پيام Error براي من برگردونده ميشه که باز هم ميکرو وارد وقفه دريافت ميشه
    مورد دوم اين هست که وقتي که با اون يکي ماژول ارسال انجام ميشه و ماژولي که به ميکرو متصل هست دريافت ميکنه باز هم وارد وقفه دريافت ميشه

    خوب من الان ميخام بدونم که من بايد چطوري تفاوت اين Error و OK و داده اي که از ماژول ديگه ارسال ميشه رو بفهمم؟

    خودم با تابع getchar داخل وقفه دريافت کاراکتر رو دريافت ميکنم ولي نميدونم که کاراکتري که دريافت کردم پيام OK هست يا پيام ERROR هست يا داده ي اصلي هست و وقتي هم که با sprintf روي LCD نمايشش ميدم يکسري اعداد مختلف نشون داده ميشه مثلا اول عدد 48 بعد عدد 57 بعد ..... ولي وقتي با همين تابع getchar توي حلقه for همه ي کاراکتر هارو ميريزم توي يه رشته و رشته رو روي LCD نمايش ميدم ،داده کاملا درست هست

    اصلا اين تابع getchar مقدار اسکي برميگردنه يا مقدار هگز يا ... و کلا چطوري من داده دريافتي رو ازش استفاده کنم و بتونم مثلا بفهمم که OK هست يا چيز ديگه ؟

    و يه سوال ديگه هم دارم ، داده ي اصلي که از ماژول هاي ديگه براي من ميرسه به صورت +0000165000000156:555 ميرسه به دست من که داده ي اصلي همون 555 هست که بعد از : اومده و اون بقيه کد هستند ، خوب حالا چطوري من داده اي که ميخام (555) رو از اون کد اضافي جدا کنم ؟

    خيلي خيلي ممنون ميشوم راهنمايي کنيد
    تشکر فراوان
    ویرایش توسط soodi : 24-01-2014 در ساعت 12:04

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    کاربر فعال soodi آواتار ها
    تاریخ عضویت
    Jun 2010
    نام
    مسعود محمدی
    نوشته ها
    264
    تشکر
    111
    تشکر شده 296 بار در 138 پست

    پیش فرض

    سلام دوستان

    هنوز منتظرما !!!
    لطفا دریغ نفرمایید

  4. #3
    کاربر فعال titery آواتار ها
    تاریخ عضویت
    Dec 2011
    نام
    وثوق
    نوشته ها
    166
    تشکر
    363
    تشکر شده 218 بار در 89 پست

    پیش فرض

    نقل قول نوشته اصلی توسط soodi نمایش پست ها
    سلام دوستان

    هنوز منتظرما !!!
    لطفا دریغ نفرمایید
    سلام من که getchar رو هر جا کارکردم به صورت غیر دسیمال (0 تا 255) بر میگردونه یعنی وقتی میخواد عدد یک اسکی رو بفرسته 49دسیمال که همان 31 هگز هست برمیگرداند

    برای قسمت دوم داده رو مرتبا getchar کن تا به کاراکتر '+' برسی بعد دیتای برگشتی از گت چر رو چهار بار در یک بافر ذخیره کن حال اگر دیتای چهارمت برابر با ':' بود،بافر 0و1و2 کد مورد نظرت هست

  5. تشکرها از این نوشته :


  6. #4
    کاربر فعال soodi آواتار ها
    تاریخ عضویت
    Jun 2010
    نام
    مسعود محمدی
    نوشته ها
    264
    تشکر
    111
    تشکر شده 296 بار در 138 پست

    پیش فرض

    سلام

    خیلی ممنون
    اگر یه مثال بزنید واقعا عالی میشه
    تشکر

  7. #5
    کاربر فعال
    تاریخ عضویت
    Jan 2013
    نام
    عربعامری
    نوشته ها
    148
    تشکر
    25
    تشکر شده 92 بار در 60 پست

    پیش فرض

    سلام.به این شکل من پیدا میکنم.cnt برابر با تعداد بافر
    کد:
    for(J=0;J<=Cnt;J++)
         { 
                   for(i=0;i<=1;i++)
                   M[i]=rx_buffer[i+J];
                   if(!strcmp(M,"OK"))
                   break;

موضوعات مشابه

  1. مشکل در فعال شدن وقفه ی uart
    توسط majid97 در انجمن LPC series (NXP)
    پاسخ: 1
    آخرين نوشته: 30-10-2013, 17:33
  2. پاسخ: 0
    آخرين نوشته: 23-09-2013, 20:32
  3. کمک uart وv-usb
    توسط hsoft_project در انجمن AVR
    پاسخ: 2
    آخرين نوشته: 10-04-2012, 11:10
  4. وقفه در uart نرم افزاری ccs
    توسط lpln852 در انجمن PIC
    پاسخ: 2
    آخرين نوشته: 05-03-2011, 21:31
  5. نکاتی در مورد IC سینتی سایزر AD9833
    توسط codev در انجمن مباحث متفرقه در زمینه میکروو الکترونیک
    پاسخ: 10
    آخرين نوشته: 19-11-2009, 11:15

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •