اطلاعیه

Collapse
No announcement yet.

دریافت داده از طریق UART0 در میکروکنترلر LPC1768

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

    دریافت داده از طریق UART0 در میکروکنترلر LPC1768

    سلام.
    اگه من بخوام توسط UART0 اطلاعاتی رو دریافت کنم باید چه جوری اینکار رو انجام بدم.
    اطلاعات به صورت بایت به بایت ارسال و دریافت می شوند.
    طرف فرستنده ممکن است هر نوع داده ای رو ارسال کند مثلا عدد یا رشته یا کلمه یا جمله و یا هر چیز دیگری.
    من از طریق فعال کردن وقفه ( یک کردن بیت 0 از رجیستر IER ) میتونم بفهمم که یک بایت دریافت شده و باید رجیستر RBR رو بخونم. مشکل من این هستش که چه جوری باید بفهمم که چه نوع داده ای از طرف فرستنده ارسال شده و چه جوری باید این داده ها رو سرهم کنم.
    مثلا اگر فرستنده کلمه "microcontroller" رو ارسال کند این ارسال به صورت بایت به بایت خواهد بود. چه جوری باید این بایت ها را سرهم کنم تا کلمه microcontroller" رو داشته باشم.
    یک سوال دیگه هم دارم و این هستش که فرستنده برای ارسال مثلا عدد 5 چه مقداری رو ارسال میکنه. بالاخره باید 8 بیت رو ارسال کند.

    #2
    پاسخ : دریافت داده از طریق UART0 در میکروکنترلر LPC1768

    کسی نیست جواب بده.

    دیدگاه


      #3
      پاسخ : دریافت داده از طریق UART0 در میکروکنترلر LPC1768

      سلام
      اگه ماهیت اطلاعات ارسالی از فرستنده قابل تغییر هست بهتره که یکسری از عباراتی که به عنوان فرمان استفاده نمیشوند رو برای آدرس شروع و پایان قرار دهید
      به عنوان مثال:
      #microcontroller%
      اما اگه این طور نیست چاره ای جز خواندن اطلاعات چیدن آنها در یک بافر و بستن بافر بعد از عدم ارسال اطلاعات در یک مدت کوتاه نیست.
      تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

      دیدگاه


        #4
        پاسخ : دریافت داده از طریق UART0 در میکروکنترلر LPC1768

        ببینید دوست عزیز یکی از ساده ترین و به نسبت سادگیش مطمئن ترین روش برای ارسال و دریافت اطلاعات، مشخص بودن شروع و پایان رشته مورد نظره!
        مثلاً توی برخی از ماژول ها که استفاده میشه و با UART راه اندازی میشن، مثلاً SIM900، آخر هر دستور(رشته) یک کاراکتر خط جدید، یا اینتر (کد اسکی 10 یا 13) ارسال میشه، از این طریق میتونی متوجه بشی که رشته ارسالی به پایان رسیده!
        یا مثلاً یک فایل رو که بررسی میکنی، آخر فایل رو توسط EOF (end of file) میتونی بفهمی!
        منظور اینکه معمولا از یک سری علائم و اختصارات یا کدهای اسکی که کمتر ممکنه تو خود رشته بیان، استفاده می کنن.

        در مورد تشخیص نوع داده، باید عرض کنم خدمتت که رشته ای که دریافت میشه، چه عدد باشه و چه حرف، میتونی با توجه به کد اسکیش بفهمیم، مثلاً کد اسکی 48 تا 58 مربوط به اعداد 0تا9 هستن.

        امیدوارم درست متوجه منظور شما شده باشم و پاسخی در خور داده باشم.
        موفق باشید

        «پشتکار» «پشتکار» «پشتکار»

        دیدگاه


          #5
          پاسخ : دریافت داده از طریق UART0 در میکروکنترلر LPC1768

          بهترین کار استفاده از وقفه تو کد هستش.
          وقتی شما بایت به بایت داری میگیری، اگر میدونی سمت فرستنده چند بایت داره ارسال میشه که کاری نداره، یه آرایه درست کن و یکی یکی اطلاعات رو بریز توش. بعد از اون ازش استفاده کن. حالا به هر صورتی که میخوای.
          در مورد اراسل عدد 5 هم، کافیه اون طرف کد هگزشو یا خودشو ارسال کنه و تموم.
          ---------
          .
          .
          ...........

          دیدگاه

          لطفا صبر کنید...
          X