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





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









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





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

نمایش نتایج: از 1 به 9 از 9

موضوع: مشکل با UART

  1. #1
    2016/08/01
    8
    0

    مشکل با UART

    برای ارتباط سریال با یک برد دیگر از میکرو PIC استفاده کردم
    کریستال داخلی 32MHz بود ریت 9600
    از وقفه دریافت سریال برای دریافت 12 بایت پشت سر هم استفاده کردم. میکرو گاهی اوقات درست کار نمی کند. یعنی به جای دریافت 12 بایت 11 بایت دریافت می کند و یک بایت را دریافت نمی کند و بایت قبلی نیز یک مقدار دیگر نشان می دهد. البته ممکنه 20 دقیقه این اتفاق نیفته و میکرو درست کار کنه و گاهی هم پس از چند ثانیه این اتفاق می فته.
    از وقفه تایمر ها هم استفاده کردم.
    کسی می دونه مشکل چیه؟
  2. #2
    2013/02/25
    مشهد
    180
    32

    پاسخ : مشکل با UART

    بسم الله الرحمن الرحیم

    با سلام و بهترین احترام .
    البته امیدوارم که تا کنون مشکل شما حل شده باشد. اما ...
    از سبک نگارش و اطلاعات مختصری که اینجا منتقل کرده اید
    نقل قول نوشته اصلی توسط eca_user

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    از وقفه دریافت سریال برای دریافت 12 بایت پشت سر هم استفاده کردم. میکرو گاهی اوقات درست کار نمی کند.
    نقل قول نوشته اصلی توسط eca_user

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    از وقفه تایمر ها هم استفاده کردم.

    مشخص و مشهود و معلوم است که اشراف بسیار خوبی بر کار داشته اید.
    اما باید به طور خلاصه خدمت تان عرض کنم که این مشکل شما ، مشکل جدیدی نیست و یا اینکه شما فقط درگیر آن باشید. همه کسانی که از ارتباط سریال استفاده می کنند. به این مورد و مشابه آن برخورد می کنند. این چیزی نیست جز وجود نویز و حذف نویز تکنیک هایی دارد از جمله تکنیک های نرم افزاری و سخت افزاری. با توجه به نوع بیان شما حتما تکنیک های سخت افزاری را به کار برده اید.
    اما روش های نرم افزاری گوناگونی هست از جمله (مثلا یکی از روش ها ) استفاده از توابع چند جمله ای که اختصارا به آن cyclic redundancy check (CRC) می گویند.
    اگر که روش های تشخیصی و کنترل خطا را نیز به کار برده اید ، پس اما برای این سوال شما که پرسیده اید:
    نقل قول نوشته اصلی توسط eca_user

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    کسی می دونه مشکل چیه؟
    بدون نقشه و شماتیک و احیانا سورس کد خیلی سخت است که بدانیم چی به چی است .

    زیاده جسارت است.
  3. #3
    2016/08/01
    8
    0

    پاسخ : مشکل با UART

    ممنون از پاسخگویی شما.
    مشکل هنوز پا برجاست من قبلا با AVR اینکار را کرده ام و مشکلی نبود و پرپزه انجام شد.
    اینجا تو PIC اما این مشکل را دارم از کامپایلر CCS استفاده کرد ه ام. وقتی وقفه تایمر 6 را غیر فعال می کنم ظاهرا مشکل حل میشه.
    گاهی وقتها بایت اشتباه می فرسته و گاهی وقتها بایت اشتباه دریافت می کنه.
    البته من برای ارتباط سریال از یک خط استفاده کرد ه ام.و بامقاومت پین دریافت و ارسال به هم وصل هستند
  4. #4
    2016/08/01
    8
    0

    پاسخ : مشکل با UART

    یک سوال
    وقتی ارسال با از طریق پین TXD تمام میشه پین یک هست.high
    من می خوام بعد از ارسال صفر یا float باشه باید چکار کنم؟
  5. #5
    2015/01/22
    115
    6

    پاسخ : مشکل با UART

    سلام
    تو ccs چطور با وقفه سریال اطلاعات گرفتی؟؟
    من هر کار کردم نتونستم . تو تابع وقفه از دستور getc استفاده کردم ولی اصلا کار نکرد
  6. #6
    2016/08/01
    8
    0

    پاسخ : مشکل با UART

    هم می تونی از getc استفاده کنی هم مستقیم رجستر RCREG را بخونی.
    کد ت را بذار اگر ایراد داشت بهت بگم

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    دوستان مشکل دربافت نکردن بک بایت را فهمدم چون error فعال میشه و بعد از رخ دادن ارور ریست میسه یک بایت جا می افته.
    حالا یک سوال چرا هنگام دریافت ارورر اتفاق می فته؟
  7. #7
    2015/01/22
    115
    6

    پاسخ : مشکل با UART

    سلام
    این کد برنامه هست . دستور printf درست کار میکنه ولی موقع دریافت اصلا وقفه uart فعال نمیشه یعنی وارد تابع وقفه نمیشه.

    #include <1.h>
    char k;
    #INT_RDA
    void RDA_isr(void)
    {
    k=getc();
    output_high(pin_a2);


    }
    #define LCD_ENABLE_PIN PIN_B0
    #define LCD_RS_PIN PIN_B1
    #define LCD_RW_PIN PIN_B2
    #define LCD_DATA4 PIN_B3
    #define LCD_DATA5 PIN_B4
    #define LCD_DATA6 PIN_B5
    #define LCD_DATA7 PIN_B6


    #include <lcd.c>


    void main()
    {
    enable_interrupts(GLOBAL);
    enable_interrupts(INT_RDA);




    lcd_init();
    printf("rasool");
    delay_ms(500);
    while(TRUE)
    {

    lcd_putc(k);
    delay_ms(500);
    lcd_clear();
    }


    }
  8. #8
    2016/08/01
    8
    0

    پاسخ : مشکل با UART

    تابع تنظیمات سریال کجاست ؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    rs232 ()
  9. #9
    2015/01/22
    115
    6

    پاسخ : مشکل با UART

    من از ویزارد استفاده کردم که خودش کد تولید کرده نمیدونم چرا تو کد نیست ولی کار میکنه.
    این مشکل وارد نشدن به وقفه هم به خاطر این بود که من از یوزارت نرم افزاری استفاده کردم یعنی از خود پایه های tx و rx استفاده نکردم . الان مشکل حل شد و درست کار میکنه
    فقط یک سوال چطور میشه یک متغیر نوع string به int ابدیل کرد؟ مثلا یک عدد توسط یوزارت دریافت میشه و داخل یک متغیر میریزیم حالا میخوام از نوع int بشه.
نمایش نتایج: از 1 به 9 از 9

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

  1. مشکل در uart
    توسط mehdi_24 در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2015/02/20, 23:33
  2. مشکل ارسال با UART
    توسط gbg در انجمن NXP
    پاسخ: 3
    آخرين نوشته: 2014/11/14, 11:56
  3. مشکل با uart
    توسط H_M در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2014/07/10, 20:54
  4. مشکل در راه اندازی uart
    توسط saeid bahari در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2013/02/03, 21:06
  5. مشکل با UART
    توسط tarasheh در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2011/11/09, 22:24

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

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

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

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

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