اطلاعیه

Collapse
No announcement yet.

چرا گاها USART در STM32F407 کاراکتر اشتباه می فرستد

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

    چرا گاها USART در STM32F407 کاراکتر اشتباه می فرستد

    سلام
    یه برنامه ساده تست یوزارت نوشتم که یک رشته رو بفرسته.
    نتیجه به شکل زیر میشه.
    دلیلش چی میتونه باشه؟
    در ضمن تنظیمات با کیوب انجام شده و نقصی نداره.
    [code=c]
    void HAL_SYSTICK_Callback(void)
    {
    uint8_t TX[100];
    sprintf(TX,(uint8_t*)"@YOUR MAIL YOU'LL FIND MY MAIL ABOUT $\r\n"
    HAL_UART_Transmit_DMA(&huart2,TX,39);
    }
    [/code]
    کد:
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
     $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT@YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    @YOUR MAIL YOU'LL FIND MY MAIL ABOUT $
    اگر دقت کنید ابتدا خوب کار میکنه ولی گاها به قول دوستان تــپــق میزنه :NO:.
    حالا این مورد برای من مهه :read: چون میخواهم کامند با USART بفرستم که اگر بخواهد اینجوری بفرسته پکت دیتا رو خراب میکنه :angry:.
    ممنون میشم اگر راهنمایی مفیدی بکنید.
    ASDAL

    #2
    پاسخ : چرا گاها USART در STM32F407 کاراکتر اشتباه می فرستد

    وقفه ای دارین ؟
    :rolleyes:
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

    دیدگاه


      #3
      پاسخ : چرا گاها USART در STM32F407 کاراکتر اشتباه می فرستد

      خیر
      این تنها خط کدی هست که به صورت دستی نوشتم و اون هم دقیقا برای تست نوشتم.
      بقیه کد هم که ویزاردی وارد شده.
      قصدم فقط تست UART بود.
      برنامه اصلیم که قرار پکت دیتا بفرسته این نیست. هر چند توی اون هم همین مشکل وجود داره.
      ASDAL

      دیدگاه


        #4
        پاسخ : چرا گاها USART در STM32F407 کاراکتر اشتباه می فرستد

        بنده زیاد با سری ارم کار نکردم ولی این مشکل با وقفه داشتم
        وقفه رو قبل ورود به زیر برنامه پرینت غیر فعال و اخر سر فعال میکردم جالب اینجاست خروجی شما کل جمله رو نابود کرده و یدونه $ افتاده !!
        مشکل دیگه هم این بود که داشتم میکرو رو هی به لیبل های مختلف میفرستادم و (نه ساب روتین ) استک میکرو پر شده ریست میشد!
        این تمام کمکی بود که از دستم بر می اومد شرمنده oo: :cry:
        [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

        دیدگاه


          #5
          پاسخ : چرا گاها USART در STM32F407 کاراکتر اشتباه می فرستد

          خیلی ممنون بابت جوابتون
          در اینجا delay داریم و نگران stackoverflow نیستیم. در مورد وقفه هم در آرم به خاطر اولویت بندی وقفه ها مشکلات خیلی کم شده و علاوه بر اون HAL هم به صورت نرم افزاری در مواقع لزوم قفل میشه تا درخواست جدبد منتظر بمونه (البته با Timeout)
          اما واقعا این مورد عجیب و سردرگم کننده هست.
          امیدوارم مشکل برطرف بشه.
          از دوستان دیگه هم اگر نظری دارن خواهش میکنم وارد بحث بشن.
          بسم الله
          ASDAL

          دیدگاه

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