ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2011/03/18
    تهران
    574
    3

    مشکل ارسال يک کاراکتر اضافه (دات) در USART

    سلام
    اين کد من چرا يه کاراکتر اضافه (دات) هم آخر هر بار ارسال ميفرسته؟
    کد:
    #include<p18f4550.h>
    #include<xc.h>
    #include <plib/usart.h>
    
    #define USE_AND_MASKS
    
    #define _XTAL_FREQ 16000000L
    
    #pragma config WDT = OFF
    #pragma config FOSC = HS
    #pragma config BOR = OFF
    #pragma config PWRT = ON
    #pragma config MCLRE = OFF
    #pragma config PBADEN = OFF
    #pragma config LVP = OFF
    #pragma config ICPRT = OFF
    #pragma config DEBUG = OFF
    
    void delayMS(int time);
    unsigned char UART1Config = 0, baud = 0;
    unsigned char msg[]="HELLO FROM PIC\r";
    
    void main(){
    
      //USART CONFIG
      TRISCbits.RC6 = 0; //TX pin set as output
      TRISCbits.RC7 = 1; //RX pin set as input
      UART1Config = USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_BRGH_HIGH ;
      baud = 103;
      OpenUSART(UART1Config,baud);
      //
      while(1){
        putsUSART(msg);
        delayMS(1000);
        
      }
    
    }
    
    void delayMS(int time){
      time=time/10;
      for(int x = 0; x<time; x++){
        __delay_ms(10);
      }
    }
    کد رو تو MPLABX نوشتم و براي کانفيگ و ارسال ديتا از توابع خود ميکروچيپ استفاده کردم
    خروجي اين کد اينه:
    ;()((void (*)(void))0x0000))
  2. #2
    2011/03/18
    تهران
    574
    3

    پاسخ : مشکل ارسال يک کاراکتر اضافه (دات) در USART

    مشکل از تابع
    کد:
    putsUSART(msg);
    هست که null هم آخرش ميفرسته :-w
    ;()((void (*)(void))0x0000))
  3. #3
    2009/02/18
    تهران
    270
    1

    پاسخ : مشکل ارسال يک کاراکتر اضافه (دات) در USART

    سلام

    من فکر ميکنم چون در انتهاي آرايه msg کاراکتر تهي نيست , اين اتفاق ميوفته
    نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
    تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه
  4. #4
    2011/03/18
    تهران
    574
    3

    پاسخ : مشکل ارسال يک کاراکتر اضافه (دات) در USART

    نقل قول نوشته اصلی توسط ramezani.t
    من فکر ميکنم چون در انتهاي آرايه msg کاراکتر تهي نيست , اين اتفاق ميوفته
    همه جوره تستش کردم
    آخر رفتم کد تابع putsUSART رو از فولدر XC8 بررسي کردم ديدم اصلا کارش همينه (البته تو داکيومنتش هم گفته بود اينو ولي متوجه نشده بودم)، آرايه رو همراه با کاراکتر null آخرش ميفرسته، بدنه اين تابع به اين صورته:
    کد:
    void putsUSART( char *data)
    {
     do
     { // Transmit a byte
      while(BusyUSART());
      putcUSART(*data);
     } while( *data++ );
    }
    بعد خودم يه تابع تعريف کردم و بدنه همين تابع قبلي رو با يک تغيير خيلي ريز ولي اساسي به اين صورت در آوردم:
    کد:
    void printUSART(char *data){
      while(*data){
      while(BusyUSART());
      WriteUSART(*data);
      *data++;
      }
    }
    و دقيقا اون چيزي که توقع داشتم در اومد ، و ديگه خبري از اون کاراکتر اضافه نبود.
    ****
    پ.ن: تابع
    کد:
    putcUSART(*data)
    دقيقا با
    کد:
    WriteUSART(*data);
    برابر هستن.
    ;()((void (*)(void))0x0000))
نمایش نتایج: از 1 به 4 از 4

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

  1. دریافت کاراکتر از وقفه usart و ارسال ش با وقفه spi
    توسط davoud.arabee در انجمن برنامه نویسی و اینترفیس
    پاسخ: 5
    آخرين نوشته: 2016/04/01, 21:42
  2. چرا گاها USART در STM32F407 کاراکتر اشتباه مي فرستد
    توسط asdal در انجمن پروسسورهای ARM
    پاسخ: 4
    آخرين نوشته: 2014/12/17, 14:24
  3. مشکل در ارسال اطلاعات با USART
    توسط webyou در انجمن میکروکنترلرهای AVR
    پاسخ: 41
    آخرين نوشته: 2013/09/04, 11:39
  4. ارسال کاراکتر در سی شارپ برروی مودم dialup و ارسال از طریق atcommand
    توسط 8611113022 در انجمن برنامه نویسی و اینترفیس
    پاسخ: 1
    آخرين نوشته: 2013/03/15, 18:50
  5. مشکل با ارسال و دریافت اطلاعات چندبایتی با USART
    توسط ziXet در انجمن میکروکنترلرهای AVR
    پاسخ: 9
    آخرين نوشته: 2011/02/04, 19:20

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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