۲۷ مهر ۱۳۹۷

درباره نویسنده

مهدی عبدالهی

مهدی عبدالهی

کانال میکروالکترونیک @microstm32کانال میکروالکترونیک @microstm32

مطالب مشابه

14 Comments

  1. 5

    نوید

    سلام مهندس تشکر از شما
    همه چی داشت خوب پیش میرفت که رسیدیم به عکس یکی مونده به اخری…همون جا که دستور “;()HAL_SuspendTick معرفی شد
    این عکس دقیقا کجاست؟؟
    منظورم اینه که تابعی که توشه و از خط 416 شروع میشه در کدوم سر برگ میشه پیدا کرد؟؟
    بسیار ممنون

    پاسخ
    1. 5.1
      زئوس Zeus

      زئوس Zeus

      سلام دوست عزیز ؛ این خط ها به صورتی دستی توسط نویسنده مقاله اضافه شده اند ، توصیه میکنم از توابع تاخیر cmsis استفاده کنید اگر قرار نیست از تاخیر در تایمر استفاده کنید.

      پاسخ
      1. 5.1.1

        نوید

        ممنونم
        میشه یه توضیح کلی ازتوابع cmsis و hal بدین؟؟

        پاسخ
        1. 5.1.1.1
          زئوس Zeus

          زئوس Zeus

          ببینید دوست عزیز ، توابع Cmsis توابعی است که توسط شرکت ARM برای ساده کردن استفاده از این پردازنده ارائه شده ؛ خوب حالا این یعنی چی ؟ ؛ این به این معنیه که وقتی شما از نوابع cmsis استفاده می کنید ، مهم نیست که از چه مدل پردازنده ای دارید استفاده می کنید ، محصول شرکت nxp هست یا st یا حتی ti مهم اینه که arm باشه ، تمام توابع cmsis به درستی کار خواهند کرد. این باعث میشه که به سادگی بتونید کدتون رو از یک پردازنده به پردازنده دیگه منتقل کنید که واقعا ایده جالبی است
          اما hal ، یه سری کتابخانه است که شرکت st ارائه کرده برای سهولت کار با میکروکنترلر های خودش ؛ صرفا همین

          پاسخ
  2. 4

    محمد

    سلام خسته نباشید .
    یک سوال داشتم چرا اینقدر تاکید میشه که بعضی جا ها کتابخانه ها را تغییر دهیم یا از توابع خود HAL استفاده نکنیم یا مستقیم با رجیستر کار کنیم ؟؟
    تشکر

    پاسخ
    1. 4.1
      زئوس Zeus

      زئوس Zeus

      سلام دوست عزیز
      من فکر میکنم دلیل نویسنده مقاله این بوده که احتمالا میخواسته از تیک تایمر در جای دیگری استفاده کنه ، برای همین دست به چنین اقدامی زده
      یا این که قصد داشته از تاخیر در وقفه هم استفاده کنه ، هر چند که این کار چندان اصولی نیست

      پاسخ
  3. 3

    reza

    نمیدونم چطوری باید از مطالب مفیدتون تشکر کنم که بدون چشم داشت مالی ….
    یه سوال : بعضی از توابع اولشون __ دارن معنیش چیه ؟

    پاسخ
    1. 3.1
      زئوس Zeus

      زئوس Zeus

      خواهش میکنم دوست عزیز واقعا باعث خوشحالی و دل گرمی ما میشه این چنین کامنت هایی
      __ تنها یک جور نام گذاریه که لایه های پایین استفاده میشه

      پاسخ
  4. 2

    Ali

    با سلام و تشکر بابت آموزش های خوبتون .بنده دنبال یه کتابآموزشی کامل یاخوب برای میکرو های stm32 هستم .شما چه کتاب هایی رو توصیه می کنید ؟.با تشکر

    پاسخ
    1. 2.1
      زئوس Zeus

      زئوس Zeus

      حقیقت اینه که به شخصه این میکروکنترلر و هیچ میکروکنترلر دیگری رو با استفاده از کتاب یاد نگرفتم و نمی دونم کتاب خوبی در این زمینه هست یا نه !
      وقتی که بخوام کتاب خوبی رو معرفی کنم حداقل باید یک بار اون رو خوانده باشم که بتونم توصیه اش کنم اگر نه کتاب فکر میکنم الان دیگه بسیار باشه
      روشی که من استفاده کردم ، اینترنت + منوال های ارائه شده توسط خود شرکت بوده است

      پاسخ
  5. 1

    Arian

    واقعا فوق العاده بود
    ممنون بابت اشتراک گزاری اطلاعات ارزشمندتان
    فقط بنده یک سوال داشتم اینکه من تازه شروع به یادگیری میکرو های ARM کردم ولی به AVR و PIC مسلطم برامن سواله که نوع متغیری مثلا unit32_t در این میکرو وجود دارد یا در تمام میکروکنترلر های 32 بیتی و اینکه یک مقدار در رابطه با انوع متغیر با تغیر میکرو میخواستم بدونم

    پاسخ
    1. 1.1
      زئوس Zeus

      زئوس Zeus

      خواهش میکنم دوست عزیز ، خوشحالیم که این مطالب مورد توجه قرار گرفته است
      ببینید در واقع استفاده از uint32_t یا انواع مشابه در واقع یک جور نام گذاری استاندارد برای جلوگیری از سردرگمی برنامه نویس است ، بذارید با مثالی مساله رو روشن کنم ، وقتی شما از متغییر int روی میکروی 8 بیتی مثل AVR استفاده می کنید ، در واقع متغیر شما یک متغییر دو بایتی خواهد بود که تا مقدار 65535 رو بیشتر نمی تونه ذخیره کنه ولی وقتی از همین متغیر یعنی int روی یک میکروی 32 بیتی استفاده می کنید کامپایلر اونو یک متغییر 4 بایتی در نظر میگیره که قادره تا 4294967295 رو ذخیره کنه ! پس میبیند که چقدر این مساله مهمه مخصوصا وقتی یه کتابخونه استاندارد داشته باشید که بخواید هم روی AVR ارش استفاده کنید هم روی ARM !
      برای رفع این مشکل اومدن هدر stdint.h رو اضافه کردن که وقتی جایی متغیر دو بایتی خواستید از uint16_t استفاده کنید بعد دیگه فرقی نکنه نوع کامپایلر شما چی هست و میکرو چند بیتی ، این نوع متغیر 2 بایت حافظه یا 16 بیت رو در اختیار شما قرار خواهد داد.

      پاسخ
      1. 1.1.1

        سروش

        با سلام و خسته نباشید خدمت جناب زئوس گرامی
        خیلی وقته دارم دنبال مفهوم uint32_t و … می گردم . خیلی جاها مطلب خوندم و از خیلیا پرسیدم ولی هیچ وقت درست نفهمیدم .
        یه دنیا ممنون توضیحتون فوق العاده بود .
        امیدوارم همواره موفق باشید.

        پاسخ
        1. 1.1.1.1
          زئوس Zeus

          زئوس Zeus

          سلام و درود خدمت شما دوست عزیز
          خواهش میکنم کاری نکردم 🙂

          پاسخ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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