اطلاعیه

Collapse
No announcement yet.

ارسال عدد و نمایش نادرست روی lcd

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

    ارسال عدد و نمایش نادرست روی lcd

    سلام
    من یک مشکلی تو خوندن عدد ارسالی با uart دارم. وقتی عددم رو ارسال می کنم lcd اون رو با عدد 192جمع می کنه و نشون می ده! دلیلش چی می تونه باشه؟
    مثلا عدد 1 به صورت Hex ارسال می کنم ولی 193 نشون می ده. نرم افزارم keil هستش و برای lpc1768 کد نوشتم.
    ممنون میشم کمک کنید.

    #2
    پاسخ : ارسال عدد و نمایش نادرست روی lcd

    با سلام
    اگه کد مربوط به خواندن از یوزارت و نوشتن در lcd رو بذارین، بهتر میشه راهنمایی کرد
    The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

    دیدگاه


      #3
      پاسخ : ارسال عدد و نمایش نادرست روی lcd


      این کد قسمت main هستش:while(1){

      s=UART2_GetChar();

      UART2_SendString((unsigned char *)lcd_buf);
      sprintf(lcd_buf,"counter: %d %d %d %d",s[1],s[2],s[3],s[4]);
      LCD_ShowString(0,30,lcd_buf );
      i++;
      Delay(4000);
      }

      دیدگاه


        #4
        پاسخ : ارسال عدد و نمایش نادرست روی lcd

        خواهش می کنم از تگ کد برای قرار قرار دادن کد خودتون استفاده کنید، اینطوری سخت میشه خوندنش، منوی بالا نوشته کد از اونجا
        خیلی سطحی نگاه انداختم، اولین اشکال: s قراره ارایه و یک جمله باشه، پس چرا با با getchar خوندیدنش؟ این تابع فقط یک کاراکتر میگیره، در حالی که شما تو sprintf به سبک یک جمله باهاش رفتار کردین، گام به گام بریم جلو، فعلا فکری برای این مشکل بکنید
        The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

        دیدگاه


          #5
          پاسخ : ارسال عدد و نمایش نادرست روی lcd

          سلام،
          مطمئن هستین که درست ارسال می کنید؟
          چند عدد رو تست کردین و نتیجه یکسان بوده؟
          هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...

          دیدگاه


            #6
            پاسخ : ارسال عدد و نمایش نادرست روی lcd

            ممنون از اینکه جواب دادید. آخه نمیدونم چهطوری یه عدد مثلا 8 بایتی که با uart_getchar میگیرم رو روی lcd نشون بدم تنها روشی که به نظرم درست بود اینطوری بود که اولین بایت رو فعلا درست نمایش بده بعد من یه لوپ ایجاد کنم و تک تک نشون بدم. شما به نظرتون از چه روشی استفاده کنم بهتره؟ با LCD_ShowChar هم چیزی نشون نمیده ابه این صورت می نویسم:
            کد:
             unsigned char j;
            unsigned char lcd_buf[8];
            j=UART2_GetChar();
            		LCD_ShowChar(0,30,j,8,0 );
            من چندتا عدد رو امتحان کردم انگار رندوم نشون میده.

            دیدگاه


              #7
              پاسخ : ارسال عدد و نمایش نادرست روی lcd

              خواهش می کنم
              به نشون دادن عدد هم میرسیم
              من فقط احتمالاتی که به ذهنم میرسه رو میگم، شما بررسی کنید گام به گام بریم جلو:
              1--usart درست کانفیگ شده؟ برای امتحان هرچی از pc میفرستین رو دوباره به pc برگردونین ببینین همونه یا نه
              اگه درست کانفیگ شده:
              2--ایا مدار lcd درست متصل شده؟برای تست چند جمله دلخواه رو روی lcd نشون بدین(ترجیحا کاراکتر های وسیعی رو پوشش بدین با این چند جمله ) و چک کنین همه کاراکتر ها سالم باشن
              اگه مدار درسته:
              چند تا از اعدادی که بالا گفتین فرستادین و انچه که lcd نشون داد رو به ترتیب بذارین شاید سرنخی بدست بیاد
              -------------------
              در ضمن این نکته رو هم به یاد داشته باشین:
              انچه که برای نمایش روی ال سی دی باید فرستاده شه تا ما ببینیم، کد اسکی عدد باید باشه، وگرنه نمایش درستی نخواهیم داشت، مثلا اگه 1 هگز ارسال شه ما هیچی نمیبینیم برای نمایش عدد یک باید 31 هگز ارسال شه، پس حواستون به این نکته تو ترمینال پی سی باشه که عدد هگز دارین میفرستین یا اسکی
              The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

              دیدگاه

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