نرم افزار STM32CubeMX که به اختصار به آن CubeMX -کیوب ام ایکس- نیز میگویند، به جهت سادهتر کردن و سرعت بخشیدن به برنامه نویسی میکروکنترلرهای STM32 ایجاد شده است. ایجاد پروژه و راهاندازی واحدهای مختلف میکروکنترلرهای STM32 به صورت گرافیکی از جمله مهمترین وظایف این نرمافزار است. اگرچه کارکردهای دیگری چون تخمین میزان مصرف توان میکروکنترلر را نیز دارد. این نرمافزار در نسخههای ابتدایی آن باگهای زیادی داشت، اما به مرور شرکت ST با بازخوردی که از کاربران میگرفت آن را بهبود بخشید. بطوریکه اوضاع کنونی آن در وضعیت به مراتب مطلوبتری قرار دارد. در ادامه به تشریح چند ویژگی این نرم افزار خواهیم پرداخت.
کتابخانههای برنامه نویسی:
این نرمافزار، درون خود متناسب با هر میکروکنترلر شرکت ST، کتابخانههایی چون HAL, LL, USB, TCP/IP و .. را دارا میباشد، که در صورت لزوم آنها را به پروژه ما اضافه میکند.
کانفیگ پایههای میکروکنترلر:
هر پین میکروکنترلر ممکن است چندین گزینه برای کانفیگ شدن داشته باشد. برای مثال اگر به دیتاشیت STM32F030F4P6 مراجعه کنید. در جدول 11، برای پین PA1 چندین کارکرد از جمله USART1_RTS و ADC_IN1 مشاهده میکنید که تنها باید یکی از آنها را انتخاب نمود. ما نمیتوانیم این پایه را هم به عنوان RTS واحد USART1 و هم به عنوان یک کانال ADC تنظیم کنیم. چراکه این کار باعث به وجود آمدن تداخل میشود. از ویژگیهای مفید CubeMX این است که در صورت امکان تداخل در کانفیگ پینهای میکروکنترلر، این موضوع را به ما نشان میدهد و مانع از بروز مشکل میشود.
تنظیم کلاک:
به نوعی مشابه ویژگی قبلی، در قسمت تنظیم کلاک نرمافزار CubeMX امکانی وجود دارد که به ما کمک میکند به تنظیم قسمتهای مختلف کلاک بپردازیم. در واقع در اینجا هم اگر مقداری خارج از حد مجاز به قسمتی از کلاک بدهیم، با رنگ قرمز به ما وجود مشکل را اعلام میکند. ما میتوانیم در صورت به وجود آمدن این وضعیت، به صورت اتوماتیک -توسط نرم افزار- یا دستی -توسط خودمان- مقادیر را به حالت مجاز تغییر دهیم.
تنظیم پریفرالهای میکروکنترلر:
پس از فعال سازی واحدهای موردنظرمان در میکرو، این امکان وجود دارد تا بتوانیم آنها با توجه به کاری که میخواهیم پیکربندی کنیم. مثلاً اگر یوزارت را فعال کرده باشیم، در قسمت configuration میتوان به تنظیم ویژگیهایی چون نرخ تبادل، طول داده، داشتن parity و … که مربوط به این پریفرال است، پرداخت.
تخمین توان مصرفی:
همانطور که در ابتدای متن هم اشاره کردم، به کمک CubeMX میتوان تخمینی از میزان مصرف توان میکرو با مشخصاتی که به آن میدهیم داشت. این امکان برای طراحی مدارات پرتابل که مصرف توان در آنها اهمیت زیادی دارد، میتواند بسیار مفید واقع شود.
پینوشت:
علاوه بر موارد بالا، به کمک کیوب ام ایکس میتوانیم گزینههای موجود برای remap کردن یک پین از یک پریفرال فعال شده را ببینیم. تو یک مطلب جداگانه به این موضوع پرداختم. اگر دوست داشتید بدونید چه جوری این کار امکان پذیره، پست “انتخاب پینهای مناسب برای پریفرال ( remap ) به کمک STM32CubeMX” را بخوانید.