برد STM زبان C و Cpp نرم افزار

نرم افزار STM32CUBEIDE و کدنویسی بر روی میکروکنترلرهای STM32

نوشته شده توسط علی زاهدی

پیش از این در آموزش ها و پروژه های مختلف تا حدودی با میکروکنترلرهای STM32 آشنا شدیم. میکروکنترلرهای STM32 به دلیل وجود توابع بسیار ساده و کاربردی که از سمت شرکت ST ارائه شده، بسیار محبوب شده اند. در این پست قصد داریم تا نرم افزار STM32CubeIDE را به شما معرفی کنیم. در ادامه با با مرجع تخصصی بردهای STM امبدد به زبان فارسی، دیجی اسپارک همراه باشید.

 


معرفی نرم افزار


نرم افزار STM32CubeIDE یک نرم افزار توسعه از اکوسیستم نرم افزار های STM32Cube است. این نرم افزار بر روی سیستم عامل های مختلف به صورت رایگان در دسترس است. نرم افزار STM32CubeIDE یک پلت فرم توسعه پیشرفته C/C++ با پیکربندی محیطی، تولید کد، کامپایل کد و ویژگی های اشکال زدایی برای میکروکنترلرها و ریزپردازنده های STM32 است. این نرم افزار بر اساس چارچوب Eclipse®/CDT™ و زنجیره ابزار GCC برای توسعه و GDB برای اشکال زدایی است. این نرم افزار  امکان ادغام صدها پلاگین موجود را فراهم می کند که ویژگی های Eclipse® IDE را کامل می کند.

معرفی نرم افزار Stm32 cubeIDE - دیجی اسپارک

نرم افزار STM32CubeIDE همچنین شامل ویژگی‌های استاندارد و پیشرفته اشکال زدایی از جمله نماهای رجیسترهای هسته CPU، حافظه‌ها و ثبات‌های جانبی، و همچنین ساعت متغیر زنده، رابط نمایشگر سیم سریال یا تحلیلگر خطا است.

 


تنفاوت CubeIDE و CubeMX


در پروژه های قبلی که با میکروکنترلر های STM32 انجام داده ایم. از نرم افزار STM32CubeMX به همراه یک کامپایلر مانند KEIL استفاده می‌کردیم. نرم افزار CubeMX تنها توانایی تولید کد اولیه برای پروژه های STM32 را دارد و برای کامپایل و همچنین پروگرام کد بر روی میکروکنترلر بایستی از نرم افزار های دیگری استفاده کنید.

تنفاوت CubeIDE و CubeMX - دیجی اسپارک

 

اما نرم افزار STM32CubeIDE پیکربندی میکروکنترلر STM32 و عملکردهای ایجاد پروژه را از STM32CubeMX ادغام می کند تا تجربه ابزار یکپارچه را ارائه دهد و در زمان نصب و توسعه صرفه جویی کند. STM32CubeIDE شامل تحلیلگرهای ساخت و Stack است که اطلاعات مفیدی در مورد وضعیت پروژه و نیازهای حافظه در اختیار کاربر قرار می دهد. از نکات مثبت این نرم افزار میتوان به این موضوع اشاره نمود که در هر زمانی در طول توسعه، کاربر می‌تواند به تنظیمات اولیه و پیکربندی ابزارهای جانبی یا میان‌افزار بازگردد و کد اولیه را بدون هیچ تأثیری بر روی کد کاربر، بازسازی کند.

 


دانلود و نصب نرم افزار


همانطور که گفته شد نرم افزار STM32CubeIDE یک نرم افزار کاملا رایگان است. بنابر این میتوانید آخرید ورژن این نرم افزار را از سایت خود شرکت ارائه دهنده این نرم افزار (ST) دانلود کنید. برای ورود به صفحه دانلود این نرم افزار میتوانید بر روی این لینک کلیک کنید. ممکن است در برخی موارد لینک دانلود برای شما فعال نشود. برای حل این مشکل بایستی فیلتر شکن خود را روشن کنید و صفحه سایت را رفرش کنید. سپس به راحتی میتوانید نرم افزار را دانلود و نصب کنید. نکته مهمی که قبل از نصب این نرم افزار بایستی به آن توجه داشته باشید. این است که بر این نرم افزار برای اجرا شدن نیاز به نصب بودن جاوا بر روی سیستم دارد. با کلیک بر روی این لینک میتوانید آخرین وروژن جاوا را بر روی سیستم خود نصب کنید.

 


ساخت پروژه جدید


زمانی که این نرم افزار را کاملا نصب کنید. لازم است که این نرم افزار برخی از پکیج هارا از اینترنت دانلود کند. بنابر این سعی کنید که موقع استفاده از این نرم افزار برای اولین بار به اینترنت متصل باشید تا پکیج های لازم برای استفاده از این نرم افزار دانلود و نصب شود. برای ساخت پروژه جدید در این نرم افزار بایستی بر وارد منو File شده و روی گزینه New و سپس STM32 Project کلیک کنید. سپس نام پروژه و محل ذخیره سازی آن را مشخص کنید.

در ادامه همانند نرم افزار STM32CubeMX بایستی ابتدا میکروکنترلر مورد نظر خود را انتخاب کنید. پس از انتخاب میکروکنترلر وارد محیط پیکربندی ابتدایی میکروکنترلر می‌شوید. این محیط شامل تنظیمات مربوط به GPIO ها، پریفرال ها، فرکانس بخش های مختلف میکروکنترلر و … می‌شود. پس از انجام تنظیمات مورد نظر با کلیک بر روی گزینه Save نرم افزار به صورت خودکار پروژه را ساخته شده. و فایل های مورد نیاز را به پروژه اضافه میکند. برای شروع کد نویسی بایستی وارد فایل main.c شده و کد مورد نظر خود را داخل این فایل در قسمت های مشخص شده توسط نرم افزار بنویسید.

 


لوازم مورد نیاز


پروگرامر STC Auto Programmer

برد STM32 مدل F103C8T6 دارای تراشه ARM

 


جمع بندی


در این آموزش به معرفی نرم افزار STM32CubeIDE پرداختیم. که یکی از قدرتمند ترین نرم افزار های کد نویسی میکروکنترلر های STM32 است. این نرم افزار علاوه بر این که کاملا رایگان است. امکانات کاربردی در بخش دیباگ نیز در اختیار شما می‌گذارد. اما این موارد تنها دلایل محبوبیت این نرم افزار نیستند. پیش از این برای کد نویسی بر روی میکروکنترلر های STM32 مجبور بودیم تا از ۲ نرم افزار استفاده کنید. نرم افزار CubeMX برای ساخت پروژه جدید و انجام تنظیمات پریفرال ها، و یک کامپایلر مانند KEIL یا IAR برای کد نویسی و پروگرام کد بر روی میکروکنترلر! این عملیات کمی برای کابران تازه کار کمی گیج کننده است. همچنین مشکلات دیگری مانند مدت زمان زیاد کامپایل کد در نرم افزار KEIL یکی دیگر از مشکلاتی است که معمولا در پروژه های بزرگ تر با آن روبرو می‌شویم. که این مشکلات در نرم افزار STM32CubeIDE کاملا برطرف شده است.

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی از وبسایت دیجی اسپارک حمایت کنید.

 

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

علی زاهدی

برنامه نویس و طراح سیستم های مبتنی بر میکروکنترلر

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۹ دیدگاه

  • سلام
    خیلی ممنون بابت توضیحات و سایت خوب شما
    من مشکلی با stm32qubeide دارم به اینصورت که اگر در یک پروژه، تغییری در قسمت device configuration tool بدم مثلا یک پایه جدید io تعریف کنم، در هنگام ذخیره سازی، برنامه main به روز رسانی نمیشود بلکه تمام کدهایی که قبلا در آن نوشته ام پاک شده و یک main جدید خام با کدهایی که به صورت اتومات تولید شده اند، جایگزین میشود. ممنون میشم راهنمایی بفرمایید.

    • با سلام
      کد هایی که در فایل main و ئیگر فایل هایی که توسط نرم افزار ساخته می‌شود مینویسید. بایستی داخل قسمت مشخص شده مانند مثال زیر قرار بگیرد.

      /*USER CODE BEGIN */
      کد در این قسمت نوشته شود.
      /*USER CODE END */

        • با سلام
          برای اتصال سگمنت به میکروکنترلر بایستی پایه های مورد نظر خود که سگمنت به آنها متصل می‌شود را به صورت خروجی تعریف کنید. سپس داخل کد پایه های خروجی را کنترل کنید.

  • سلام.ممنون از آموزش خوبتون
    سوالی که داشتم این بود keil و cubeIDE در حالت کلی چه تفاوت هایی باهم دیگه دارن؟ آیا سینتکس ها و دستورات متفاوتی دارند یا خیر
    با تشکر

    • باسلام
      خیر Syntax و توابع در هر دو نرم افزار کاملا یکی هست. تفاوت این نرم افزار ها در بخش کامپایل کردن و دیباگ کردن کد هاست. که پیشنهاد من در عموم پروژه ها نرم افزار CubeIDE هست. اما ممکن است دربرخی پروژه ها KEIL بهتر از IDE عمل کند.

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

    • باسلام
      پیشنهاد میکنم یکی از بردهای Discovery شرکن ST را خریداری کنید. بر روی این بردها یک ST-LINK اورجینال موجود هست که قابلیت پروگرام و دیباگ میکروکنترلر های دیگر غیر از میکروکنترلر روی خود برد را هم میدهد.