اطلاعیه

Collapse
No announcement yet.

ارسال رشته با lpc1768

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

    ارسال رشته با lpc1768

    سلام.
    کسی هست بدونه چطور میشه یک سری عددو چطور میشه بصورت یک رشته از lpc1768 ارسال کرد؟
    من می خوام اعداد هگز 680400a00000f8516 رو بصورت رشته در یک لحظه بدون حلقه for ارسال کنم.
    کسی هست کمکم کنه؟

    #2
    پاسخ : ارسال رشته با lpc1768

    اگر می خوای هگز بفرستی اینطوری
    کد:
    void sendString( char * Array)
    {
     unsigned int i=0;
    	for(i=0;i<strlen(Array);i++)
    	 sendchar(Array[i]);
    }
    sprintf(mystring,"my hex number is %x, number);
    sendString(mystring);
    بدون حلقه هم نمیشه. من نمیدونم منظورت چی بوده

    دیدگاه


      #3
      پاسخ : ارسال رشته با lpc1768

      سلام
      میخواهید عددتون رو توی یک متغیر string بریزید؟
      باید اینطوری عمل کنید:
      کد:
      int a;
      char str[5];
      a=5;
      sprintf(a,"%i",str);
      الان مقدار 5 داخل str رفته است! هرطوری دوست دارین ازش میتونید استفاده کنید!
      [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
      http://www.eca.ir/forum2/index.php?topic=76623.0

      دیدگاه


        #4
        پاسخ : ارسال رشته با lpc1768

        من این str رو باید بصورت سریال بفرستم.
        یعنی در نهایت باید وارد رجیستر THR بشه.اما رجیستر THR یک رجیستر 8 بیتی هست.بیشتر از 8 بیتو نمیفرسته.
        وقتی str رو میفرتم این error رو میده:
        error: #167: argument of type "char *" is incompatible with parameter of type "char"

        دیدگاه


          #5
          پاسخ : ارسال رشته با lpc1768

          اینی که شما می گی ربطی به نوع میکرو نداره
          وقتی مثلا توی ارتباط سریال تنظیم می کنی که 8 بیت دیتا، یک استاپ بیت و بدون parity این داره داد میزنه اطلاعات به صورت بایت بایت ارسال می شن. برای ارسال رشته هم باید بایت های اون رو پشت سر هم ارسال کنی که یک تابع نمونه تو پست اولم گذاشتم

          دیدگاه


            #6
            پاسخ : ارسال رشته با lpc1768

            با این حساب شما میگید وقتی LCR=0x83 هست نمیشه بیشتر از 8 بیت ارسال کرد.
            ولی باید یه راهی وجود داشته باشه تا بتونم بیشتر از 8 بیت رو ارسال کنم.
            توی تنظیمات THR هم اونو 8 بیت در نظر گرفته .
            این تنظیماتو هم که تغییر میدم اتفاق خاصی نمیفته.
            من دارم اشتباه تنظیم می کنم .
            کسی هست بدونه چطور میشه تنظیمات THR رو تغییر داد؟؟؟؟

            دیدگاه


              #7
              پاسخ : ارسال رشته با lpc1768

              نوشته اصلی توسط 872622101
              من این str رو باید بصورت سریال بفرستم.
              یعنی در نهایت باید وارد رجیستر THR بشه.اما رجیستر THR یک رجیستر 8 بیتی هست.بیشتر از 8 بیتو نمیفرسته.
              وقتی str رو میفرتم این error رو میده:
              error: #167: argument of type "char *" is incompatible with parameter of type "char"
              سلام
              ببخشید دیر شد!
              این چیزی که شما میگویید ربطی نداره به 8 بیتی ارسالی! من بیش از 20 بیت را فرستادم!
              من برای سریال از متغیر uint8 استفاده میکنم!
              [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
              http://www.eca.ir/forum2/index.php?topic=76623.0

              دیدگاه


                #8
                پاسخ : ارسال رشته با lpc1768

                سلام .
                یعنی این 20 بیت رو یکدفعه فرستادید؟
                بدون استفاده از حلقه for؟
                یا با استفاده از ارسال آرایه به آرایه المانها این کارو انجام دادید؟
                متشکرم.

                دیدگاه


                  #9
                  پاسخ : ارسال رشته با lpc1768

                  یه همچین چیزی:
                  کد:
                  	uint8_t text[] = 
                  "Typically, the host will be a PC. This means that you need to have a \n\r"
                  "deep knowledge of the Windows operating system and its device drivers. \n\r"
                  "Getting all of these elements working together would be a \n\r
                  "a PC. Together these four classes provide versatile support for most USB design requirements. \n\r";
                  
                  UART_Send(LPC_UART0,text,sizeof(text),BLOCKING);
                  البته با cmsis
                  [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
                  http://www.eca.ir/forum2/index.php?topic=76623.0

                  دیدگاه


                    #10
                    پاسخ : ارسال رشته با lpc1768

                    من با cmsis کار نکردم.
                    اما همین چیزی رو که گفتید نوشتم BLOCKING رو نمیشناخت.
                    اگر برنامه ای با cmsis دارید برام بفرستید.
                    یا همین برنامه ارسال با استفاده از cmsis به rs232 رو بنویسید.
                    بسیار متشکرم.

                    دیدگاه


                      #11
                      پاسخ : ارسال رشته با lpc1768

                      پورت سریال استاندارد به صورت 8 بیتی داده ها رو ارسال می کنه (البته تعداد بیتهای داده می تونه 5، 6، 7 یا 8 بیت هم باشه). حالا، اگه یه چیزی دارید که بیشتر از یک بایته، باید به نحوی اون رو به بایتهای پشت سر هم بشکنید و دونه دونه ارسال کنید. توابع مختلف این کار رو انجام می دن و داده ها رو بایت بایت پشت سرِ هم می فرستند. خیلی ساده ست. مثل ارسال یک آرایه عدد یا متن کاراکتری.

                      اینکه می خواید یک عدد بزرگ 20 رقمی رو یکجا به صورت هگز بفرستید، خوب نمی شه دیگه. باید بایت به بایت بفرستیدش که اونم با شیفت و AND منطقی صورت می گیره.
                      بیایید با Google آشتی کنیم!

                      دیدگاه


                        #12
                        پاسخ : ارسال رشته با lpc1768

                        unsigned char r[8]={0x68,0x04,0x00,0x0a,0x00,0x0f,0x85,0x16};

                        for(i=0;i<8;i++){
                        putchr0(r[i ]);
                        getchr1();
                        }
                        فرض کنید می خوام r رو آرایه به آرایه بفرستم و دستور ارسال و دریافت رو هم قبلا تعریف کردم حالا با این خطوط فراخوانی می کنم .
                        به نظرتون stop bit مربوط به rs232 یکبار در آخر حلقه for هست یا به ازای هر ارسال و دریافت یک stop bit هم به rs232 میفرسته؟

                        دیدگاه


                          #13
                          پاسخ : ارسال رشته با lpc1768

                          عزیز دل بردار، مگه شما داری برای FPGA کد می نویسی که انقد به جزئیات پورت سریال حساسیت نشون میدی؟!
                          خدا رو شکر درس خونده که تشریف دارید؟ اگه علوم انسانی فلسفه نخونده باشید و بر حسب تصادف برق یا کامپیوتر بوده باشید حتماً این چیزا رو می دونید. اگر نه، باید یکمی جستجو و مطالعه کنید...
                          http://en.wikipedia.org/wiki/Univers...racter_framing
                          بیایید با Google آشتی کنیم!

                          دیدگاه


                            #14
                            پاسخ : ارسال رشته با lpc1768

                            به نظرتون اگر نتیجه کار برام مهم نبود ، اینقدر پیگیری میکردم؟؟؟؟؟؟؟؟

                            دیدگاه


                              #15
                              پاسخ : ارسال رشته با lpc1768

                              آفرین بر شما.
                              به پیگیری ادامه بدید...
                              بیایید با Google آشتی کنیم!

                              دیدگاه

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