تصویر شاخص آموزش CubeMX

نرم افزار STM32CubeMX ویزارد دنیای STM32

تصویر آموزش CuneMX

مقدمه

سلام. هرروز که داریم جلوتر میریم استفاده از میکروهای آرم سری STM32 بخاطر تنوع و قیمت مناسبشون تو بازار ایران داره بیش تر و بیش تر میشه، بخصوص حالا که انواع و اقسام این میکروکنترلرها با کامپایلر Arduino IDE هم پشتیبانی می شن. اما این جلسه قصد نداریم نحوه کار با میکروکنترلرهای STM32 با Arduino IDE رو بگیم، این موضوع باشه برای وقت مناسبش. این جلسه میخوایم راجع به نرم افزار STM32 CubeMX صحبت کنیم، یچیزی شبیه Code wizard تودنیای AVR.

اگه خیلی حوصله ندارید مفصل با CubeMX آشنا بشید فیلم زیر خیلی مختصر و مفید این آموزش رو بیان کرده:

آنچه در این آموزش یاد می گیرید
  • آشنایی با STM32 CubeMX
  • نحوه نصب STM32 CubeMX
  • بخش های مختلف STM32 CubeMX
  • ساخت یک پروژه با STM32 CubeMX

نرم افزار STM32 CubeMX چیست؟

همیشه کار با رجیسترها بصورت مستقیم و استفاده از توابع و کتابخانه های سطح پایین کمک میکنه کدی که برای میکروکنترلر می نویسیم از نظر حجم و سرعت پردازش بسیار بهینه تر باشه، اما سوال اینجاست که همیشه و برای هر پروژه ای میصرفه تا این حد با رجیسترها سر و کله بزنیم و کد سخت تری بنویسیم؟ آیا همیشه سیکل به سیکل اجرای کد برامون اهمیت داره؟ شاید نه، خیلی وقتا هست برای پروژه هایی که انجام میدیم لزوما اجرای یک کد اگه یه مقدار طولانی تر بشه تاثیری روی فرآیند نمیذاره(وقتی میگیم یه مقدار طولانی تر منظور چند نانوثانیه است)

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

اگه اهل کار با میکروکنترلر AVR و کامپایلر فوق العاده CodeVision AVR باشید حتما حتما با Code Wizard AVR آشنایی دارید. Code Wizard یه واسط گرافیکی بود که به ما کمک می کرد رجیسترهای میکروکنترلر رو به راحتی هرچه تمام تر پیکربندی کنیم.

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

ولی خب از اونجایی که تنوع و قیمت میکروکنترلرهای 32 بیتی ARM شرکت ST خیلی خوبه و توای ایران هم بر خلاف رقیبشون LPC به وفور یافت میشن(البته فعلا!) استفاده از میکروکنترلرهای STM32 رایج تره. شرکت ST هم مثل CodeWizard یک واسط گرافیکی تولید کرده بنام STM32 CubeMX که کار رو به مراتب برای ما ساده تر کرده. خب حالا که متوجه شدید STM32 CubeMX چیه و قراره چیکار کنه بریم سر اصل مطلب.

فعلا اینجا نیمخوایم توابع HAL، SPL، LL و CMSIS رو باهم مقایسه کنیم فقط داریم.

نحوه نصب نرم افزار STM32 CubeMX

برخلاف Code Vision AVR نرم افزارهای شرکت ST غالبا رایگان هستند، پس بدون هیچ کرکی میتونیم نرم افزار STM32 CubeMX رو نصب کنیم و هروقت هم دامون خواست راحت آپدیتش کنیم.

برای نصبش کافیه یه اکانت در سایت ST بسازید. بعد که اکانتتون فعال شد کافیه به این لینک برید و STM32 CubeMX رو دانلود و نصب کنید، نصبش هم ساده هست و از قانون Next Next پیروی میکنه. تمومه کار، حالا فقط کافیه نرم افزار رو باز کنید.

سایت نرم افزار CubeMX
دریافت CubeMx

بخش های مختلف نرم افزار STM32 CubeMX

شروع STM32 CubeMX

حالا که نرم افزار رو باز کرید اگر از بردهای رسمی شرکت ST مثل Nucleo یا Discovery استفاده می کنید بخش Board Selector، اگر از بورد خاصی استفاده نمی کنید بخش MCU/MPU Selector و اگرم صرفا میخواید مثال ببیند بخش Example Selector رو بزنید، معمولا ما میریم سراغ MCU/MPU Selector.

اینجا میتونید با جستجوی پارت نامبر میکرو مدنظرتون مثل STM32F103C8T6 پیداش کنید(با سرچ بخش از اسم هم می تونید میکروتون رو پیدا کنید) یا با گزینه های محدود کننده برسید به میکرو مدنظرتون.

انتخاب نوع کار با CubeMX
میکروکنترلرها در CubeMX

اون میکروکنترلرهایی رو که خیلی باهاش کار میکنید رو ستاره دار کنید که هرسری دنبالشون نگردید.

با یک بار کلیک روی میکرو مبینید که انتخاب میشه حالا می تونید دیتاشیت و داکیومنت های مربوط به اون رو هم به سادگی دانلود کنید و حتی اونو بخرید(کاش می شد تو ایران) با زدن دکمه Start Project یا با دبل کلیک کردن روی میکرو وارد صفحه پیکربندی میشید.

اولین چیزی که توجه شما رو جلب میکنه پایه بندی واقعی میکرو در سمت راست تصویره، واقعا جذابه نه؟

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

تصویر پردازنده در CubeMX
تنظیم امکانات در CubeMX

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

پس تب اول برای تعریف وظایف برای پایه های میکرو هست.

اما تب دوم به ما اجازه میده منابع کلاک سیستم رو مدیریت کنیم، این که بر بخشی چه کلاکی اعمال بشه و کلاکمون رو چجوری مدیریت کنیم.

مدیریت کلاک در CubeMX

STM23 CubeMX هیچی هم که نداشته باشه همین بخش مدیریت کلاکش واقعا بدردبخوره.

تب سوم به تنظیمات ساخت پروژه اختصاص داره، خب اولا پروژتون باید یک اسم و محل ذخیره سازی داشته باشه.

بعد باید مشخص کنید با چه IDE قراره کد بنویسید، اگه با Keil کار می کنید MDK-ARM، اگه با IAR کار می کنید EWARM و اگه با IDE خود STM32 کار می کنید STM32CubeIDE رو انتخاب کنید.

توی همین بخش Project می تونید میزان حافظه Heap و Stack رو هم برای میکروتون تنظیم کنید.

توی بخش Code Generator بهتره تیک Copy only the necessary library file رو بزنید تا فقط کتابخانه های HAL مربوط به پروژتون رو توی مسیر پروژه قرار بده.

نرم افزار STM32CubeMX یه تب Tools هم داره که که شامل دو بخشه، بخش اول سایر ابزارهای شرکت ST برای میکروکنترلرهای STM32 رو معرفی میکنه و بخش دوم بنام PCC قابلیت مانیتورینگ توان سیستم رو به شما میده که این موضوع هم موضوع مفصلیه.

انتخاب کامپایلر در CubeMX
انتخاب نوع خروجی در CubeMX

نتیجه گیری

حالا که به اینجای این مطلب رسیدید معنیش اینه کاملا با نرم افزار STM32CubeMX آشنا شدید و شاید این اولین گام عملی برای ورود به دنیای میکروکنترلرهای ARM STM32 باشه و خب طبیعتا هنوز راه طولانیی در پیشه ولی اصلا نگران نباشید در کنار آریو الکترونیک گام به گام با همدیگه پیش میریم، این تازه شروعش بود.

به دنیای میکروکنترلرهای ARM STM32 خوش اومدید.

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

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