Nikelec.ir آموزش الکترونیک و کامپیوتر

در حال بارگذاری...

Nikelec.ir آموزش الکترونیک و کامپیوتر

ثبت نام
section-icon

انجمن ها

در مورد هر چیزی که می خواهید صحبت کنید!

خوش آمدید به

USART

در حال نمایش 12 نوشته (از کل 12)
  • نویسنده
    نوشته‌ها
  • 0

    Saman

    @saman1989t

    مشارکت کننده

      سلام
      وقت تون بخیر
      من قسمت ۱۱ دوره آموزشی ARM رو دارم میبینم. مبحث USART با استفاده از CMSIS
      با استفاده از بورد STM32F407 Discovery
      کد رو مثل شما نوشتم ولی کاراکتری که ارسال میشه درست نیست. من فکر میکنم به خاطر کریستالی که روی بورد من و شما هست باشه. یعنی مقداری که توی رجیستر BRR ریخته میشه

      0

      سلام وقت شماهم بخیر .

      خب همون قسمت 11 دقیقه 50 تا حدودا 60 برای تنظیم باد ریت توضیح دادم که البته دقیقه 55 در مورد همین رابطه فرکانس کاری میکرو و فرکانس باس APB توضیح میدم . با این تفاسیر شما کلاک باست چه مقداری هست و چه مقداری داری به UART میدی ؟

      یعنی عددی که حساب میکنی برحسب فرکانس APB که بریزی داخل BRR چه مقدار هست ؟

      +1

      البته مورد بالا با احتمالی هست که خودتون میدید وگرنه جوره دیگه ای باید بررسی بشه برای شما که دیسکاوری دارید . مثلا اول یک برنامه مطمئن از سمپل های خود St روش بریزید و ببینید خروجی همون چیزی هست که باید باشه یا مثل الان مشکل دار هست . بعد از اون اگر مشکل دار بود به سخت افزار و اتصال سیم و زمین مدار شک کنید بعد از اون به میکرو و پایه ها و کریستال .

      فعلا دو موردی که گفتم بررسی کنید تا بقیش انشاءالله . البته راه های عیب یابی داخل بعضی از قسمت های آموزش میگم ولی شما هنوز بهشون نرسیدید .

      +1

      3

      sybesyah

      @sybesyah

      مشارکت کننده

        <p style=”text-align: right;”>شایدم کریستال خارجی تون با اون مقدار دیفالتی که دیفاین شده یکی نیست.مثلا کریستال خارجیتون ۸مگاهرتز هست ولی توی هدر سیمسیس دیفاین شده 25 مگاهتز</p>

        0

        4

        Saman

        @saman1989t

        مشارکت کننده

          آره شکل از Baudrate هست. چون کاراکتر ارسال میشه.

          بورد من Discovery STM32F407 هست. کریستال 8MHz روی بورد هست.

          یعنی پس کلاک APB1 من 42MHz نیست…

          کلاک رو از کجا باید تنظیم کنم؟ با CMSIS

          0

          5

          Saman

          @saman1989t

          مشارکت کننده

            چون فایل system_stm32f4xx.c نمیشه نمیشه تغییر داد

            0

            کلاک داخل قسمت 33 کامل توضیحش دادم . اما شما نیاز به تغییر کلاک نداری کلاک APB بدست بیاری و مقدار BRR طبق چیزی که تو همین قسمت یوزارت میگم با مقدار صحیح جایگزین کن .

            0

            7

            Saman

            @saman1989t

            مشارکت کننده

              کلاک APB رو چطور باید به دست بیارم؟

              اگه کلاک ماکزیمم باشه میشه 42

              0

              8

              Saman

              @saman1989t

              مشارکت کننده

                توی محاسبه داخل آموزش، از فرکانس 42MHz جدول baudrate استفاده شده.کریستال روی بورد شما فکر کنم 25MHz باشه

                کریستال روی بورد من 8MHz هست. نمیدونم باید از چه مقداری توی جدول Baudrate استفاده کنم.

                0

                قسمت 33 آموزش ببینید تا کلاکتون تنظیم کنید روی مقداری که میخواید ( می تونید روی 48 بذارید که با همین مثال پیش برید )

                و بعد از دقیقه 50 تا 60 قسمت 11 حساب کردن Baud Rate هست که احتمالا دیدیدش و می دونید چطور مقدار BRR حساب کنید ( یا از جدول آماده استفاده کنید )

                 

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

                0

                10

                Saman

                @saman1989t

                مشارکت کننده

                  .

                  • این پاسخ 4 ماه، 1 هفته پیش توسط
                    Saman ویرایش شده است.
                  0

                  11

                  Saman

                  @saman1989t

                  مشارکت کننده

                    مشکل من با دیدن قسمت 33 آموزش حل شد

                    در فایل stm32f4xx.h:

                    خط 144:

                    
                    #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
                    
                    

                    ————————-

                    در فایل system_stm32f4xx.c:

                    خط 371:

                    
                    #define PLL_M 8
                     

                    با این کار میشه از همون مقادیری که توی آموزش برای BRR بدست آورده شد استفاده کرد.

                     

                    تشکر از راهنمایی ها

                    • این پاسخ 4 ماه، 1 هفته پیش توسط
                      Saman ویرایش شده است.
                    • این پاسخ 4 ماه، 1 هفته پیش توسط
                      Admin ویرایش شده است.
                    • این پاسخ 4 ماه، 1 هفته پیش توسط
                      Admin ویرایش شده است.
                    0

                  3

                  صدا

                  11

                  پاسخ

                  برچسب ها

                  این موضوع هیچ برچسبی نداره

                  در حال نمایش 12 نوشته (از کل 12)
                  • شما برای پاسخ به این موضوع باید وارد شوید.