اطلاعیه

Collapse
No announcement yet.

بخث در مورد دستورات ارتباط سریال

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

    بخث در مورد دستورات ارتباط سریال

    سلام
    من تازه کار با پورت سزیال رو شروع کردم و یه سری ابهاماتی برام پیش اومده !
    و از دوستان می خوام که کمک کنن تا مجموعه ی دستورات کار با USART و تفاوت های اونها رو اینجا جمع آوری کنیم .
    با تشکر .

    اما سئوالام :
    1- تفاوت حجم دستورات printf و puts (یا putsf ) چقدره ؟( آخه یه کاریو میخوام شروع کنم که زیاد با این دستورات سر کار دارم و حجم کدم برام خیلی مهمه)

    2-puts و putsf و puchchar و . . . در آخر خودشون newline رو اضافه میکنن !
    برای حذف newline خواستم از fputs و fputsf و fpuchchar و . . . استفاده کنم اما کمپایلر Erro میده !
    Error: . . . . . . . : undefined symbol 'fputs'
    ورژن کد ویژن 2.04
    <stdio.h> هم include شده .

    3-اگه بخوام یه رشته رو که تو EEPROM داخلی میکرو ذخیره کردم با printf ارسال کنم آرگومان اولی تابع printf که طریقه ی نمایش رو نشون میده چی باید بزارم؟

    "u%" که برای نمایش اعداد دسیمال بدون علامت هست
    "d%" که برای نمایش اعداد دسیمال علامت دار هست
    "s%" نشان می دهد که آرگومان تابع یک اشاره گر به رشته ی موجود در فضای SRAM هست
    "p%" نشان می دهد که آرگومان تابع یک اشاره گر به رشته ی موجود در فضای FALSH هست
    زمان تنها واحد حقیقی اندازه گیریه
    زمان وجود ماده رو اثبات میکنه
    بدون زمان هیچکدوم ما وجود نخواهیم داشت
    زمان یکتاست

    #2
    پاسخ : بخث در مورد دستورات ارتباط سریال

    نوشته اصلی توسط Robo-amir
    2-puts و putsf و puchchar و . . . در آخر خودشون newline رو اضافه میکنن !
    برای حذف newline خواستم از fputs و fputsf و fpuchchar و . . . استفاده کنم اما کمپایلر Erro میده !
    Error: . . . . . . . : undefined symbol 'fputs'
    ورژن کد ویژن 2.04
    <stdio.h> هم include شده .
    برای استفاده ار تابع

    int fputs(char *str,FIL* fp)

    یه آرگومان دومی هم داره
    کسی میدونه چیه؟

    زمان تنها واحد حقیقی اندازه گیریه
    زمان وجود ماده رو اثبات میکنه
    بدون زمان هیچکدوم ما وجود نخواهیم داشت
    زمان یکتاست

    دیدگاه


      #3
      پاسخ : بخث در مورد دستورات ارتباط سریال

      با سلام

      ممنون از دوست عزیز که این بحث رو مطرح کردن , منم خیلی وقته که میخواستم مباحث و دستورات ارتباط سریال رو یاد بگیرم .

      از دوستان و مهندسین گرامی خواهشمندم ما را در این بحث یاری کنند. :nice:
      از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

      دیدگاه


        #4
        پاسخ : بخث در مورد دستورات ارتباط سریال

        نوشته اصلی توسط Robo-amir
        3-اگه بخوام یه رشته رو که تو EEPROM داخلی میکرو ذخیره کردم با printf ارسال کنم آرگومان اولی تابع printf که طریقه ی نمایش رو نشون میده چی باید بزارم؟
        تا اونجا که من فهمیدم تابع printf به EEPROM دسترسی نداره :angry:اما من حتما میخوام دیتام تو ای تو پی رام باشه :angry:

        متغیرم رو (Call)به صورت زیر تعریف کردم :

        /* Pointer stored in FLASH to a char string placed in EEPROM */
        eeprom char * flash Call="Salaammmmmmmm";

        بعد به صورت زیر ارسال کردم :

        printf("%p" , *Call);

        اما یه سزی کاراکتر چرت میفرسته :angry:
        چیکار کنم ؟



        زمان تنها واحد حقیقی اندازه گیریه
        زمان وجود ماده رو اثبات میکنه
        بدون زمان هیچکدوم ما وجود نخواهیم داشت
        زمان یکتاست

        دیدگاه


          #5
          پاسخ : بخث در مورد دستورات ارتباط سریال

          منم راجبه رابطه ی usart با eeprom نمیدونم.میدونم که تو SRAM و FLASH میشه ذخیرش کرد.
          ولی برای ارسال یک رشته در ساده تری شکل ;("printf("salaam
          همچنین میشه رشته رو توی یک آرایه ریخت و بعد ارسال کرد ولی از sprintf باید استفاده بشه.
          char data[10]="salaam";
          sprintf(data,"%S"
          پس فرمت رشته s% هست .
          سوال منم راجبه دستور SCANF ؟ من میخام 3تا 8 بیت رو با این دستور بصورت دسیمال دریافت کنم؟

          دیدگاه


            #6
            پاسخ : بخث در مورد دستورات ارتباط سریال

            نوشته اصلی توسط Robo-amir
            تا اونجا که من فهمیدم تابع printf به EEPROM دسترسی نداره :angry:اما من حتما میخوام دیتام تو ای تو پی رام باشه :angry:

            متغیرم رو (Call)به صورت زیر تعریف کردم :

            /* Pointer stored in FLASH to a char string placed in EEPROM */
            eeprom char * flash Call="Salaammmmmmmm";

            بعد به صورت زیر ارسال کردم :

            printf("%p" , *Call);

            اما یه سزی کاراکتر چرت میفرسته :angry:
            چیکار کنم ؟
            از اساتید یعنی هیچکسی نمیخواد به داد ما برسه ؟
            زمان تنها واحد حقیقی اندازه گیریه
            زمان وجود ماده رو اثبات میکنه
            بدون زمان هیچکدوم ما وجود نخواهیم داشت
            زمان یکتاست

            دیدگاه


              #7
              پاسخ : بخث در مورد دستورات ارتباط سریال

              :angry: :angry: :angry:
              زمان تنها واحد حقیقی اندازه گیریه
              زمان وجود ماده رو اثبات میکنه
              بدون زمان هیچکدوم ما وجود نخواهیم داشت
              زمان یکتاست

              دیدگاه


                #8
                پاسخ : بخث در مورد دستورات ارتباط سریال

                من فکر می کنم در EEPROM باید بایت به بایت بفرستی. در نتیجه فکر نکنم با دستور پرینت بتونی این کارو انجام بدی.

                دیدگاه

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