
چگونه برد STM32F401/F411 Black Pill را با Arduino IDE برنامهریزی کنیم؟
برنامهنویسی بردهای قدرتمند STM32F4 با محیط آشنای Arduino IDE
آشنایی با پروژه STM32duino و اهمیت آن در دنیای آردوینو
با گسترش بردهای توسعه مبتنی بر میکروکنترلرهای ARM، بهویژه سریهای قدرتمند STM32، نیاز به روشی ساده و در دسترس برای برنامهنویسی این میکروکنترلرها بیش از پیش احساس شد. بسیاری از توسعهدهندگان، از جمله کسانی که تجربه کار با آردوینو را داشتند، به دنبال مسیری بودند که بتوانند قدرت پردازشی STM32 را با سادگی محیط Arduino IDE ترکیب کنند.
اینجا بود که پروژه STM32duino شکل گرفت.
STM32duino یک پروژه متنباز است که توسط شرکت STMicroelectronics و جامعه توسعهدهندگان حمایت میشود و هدف آن فراهمکردن مجموعهای از ابزارها، کتابخانهها و پیکربندیهاست تا بتوان بردهای STM32 را مانند یک برد آردوینو برنامهنویسی کرد. با نصب STM32duino در Arduino IDE، بردهایی از خانوادههای مختلف STM32—از سریهای اقتصادی F0 گرفته تا سریهای قدرتمند F4، F7 و حتی H7—بهراحتی در فهرست بردهای آردوینو ظاهر میشوند و میتوانید همان کدهایی که برای آردوینو مینوشتید را روی STM32 اجرا کنید.
این پروژه با استفاده از لایههای HAL و LL شرکت ST، دسترسی به امکانات سختافزاری پیشرفتهای مانند ADC چندکاناله، تایمرهای PWM پیشرفته، DAC، USB، I2S، CAN و PWM سریع را فراهم میکند؛ درحالیکه همچنان سادهگی برنامهنویسی آردوینو حفظ میشود. نتیجه این ترکیب، بستری است که قدرت یک میکروکنترلر صنعتی را در قالب یک تجربه کاربری آشنا و آسان ارائه میدهد.
⚡ مقایسه STM32 با آردوینوهای مبتنی بر AVR
(چرا STM32duino یک گام رو به جلو است؟)
بردهای آردوینو که روی میکروکنترلرهای AVR ساخته شدهاند—مثل Arduino Uno, Nano, Mega—سالهاست که پایه اصلی آموزش و پروژههای ساده الکترونیک هستند. این خانواده پایدار، قابل اعتماد و برای شروع کار بسیار مناسب است؛ اما محدودیتهایی نیز دارد که در پروژههای پیشرفتهتر خود را نشان میدهد.
در مقابل، میکروکنترلرهای STM32 بر پایه هسته ARM Cortex-M ساخته شدهاند و از نظر توان پردازشی، امکانات جانبی، حجم حافظه و سرعت اجرا در سطح کاملاً بالاتری قرار میگیرند. برای مثال:
- سرعت پردازنده:
AVRها معمولاً 16MHz هستند، درحالیکه STM32F1 با 72MHz و STM32F4 حتی تا 168MHz کار میکند. - RAM و Flash بیشتر:
پروژههای بزرگ، مدیریت داده و اجرای الگوریتمهای سنگین در STM32 بدون مشکل انجام میشود. - واحدهای جانبی حرفهای:
مثل ADC چندکاناله 12 یا 16 بیتی، DAC واقعی، کنترلرهای USB، تایمرهای موتور، واحدهای DSP، پشتیبانی از I2S و CAN. - مصرف انرژی بهینهتر با وجود سرعت بالاتر.
- کارایی Real-Time بهتر، مناسب برای رباتیک و کنترل موتور.
در آردوینوهای AVR محدودیتهایی مثل کمبود حافظه، نبود DAC، سرعت پایین PWM یا ناتوانی در پردازش سیگنالهای سریع وجود دارد. به همین دلیل، بسیاری از توسعهدهندگان بعد از مدتی به دنبال ارتقا به یک پلتفرم قویتر میروند—و دقیقاً در همین نقطه STM32duino بهترین گزینه است، چون اجازه میدهد بدون ترک اکوسیستم آردوینو، وارد دنیای حرفهای STM32 شوید.
برنامهنویسی Black Pill مبتنی بر STM32 (STM32F401 / F411) با Arduino IDE
برد توسعهٔ STM32F401/F411 Black Pill یک نسخهٔ بهروزشده از Blue Pill محبوب مبتنی بر F103 است. این نسخهٔ جدید دارای یک CPU مبتنی بر ARM با هستهٔ قدرتمندتر Core-M4F میباشد. هر دو پردازندهٔ F401 و F411 از بوتلودر DFU پشتیبانی میکنند.
این آموزش بوتلودر DFU را پوشش میدهد. برای گزینههای دیگر برنامهریزی، به این آموزش مراجعه کنید: Program STM32 Blue Pill (STM32F103C8T6) with Arduino IDE
دانلود و نصب Arduino IDE
اولین کاری که باید انجام دهید این است که Arduino IDE را دانلود و روی کامپیوتر خود نصب کنید. میتوانید آخرین نسخه را از وبسایت رسمی آردوینو دریافت کنید.
لینکهای زیر را برای نصب Arduino IDE دنبال کنید:
دانلود آخرین نسخه آردوینو برای ویندوز
نصب افزونهٔ STM32 روی Arduino IDE
در Arduino IDE خود به مسیر File > Preferences بروید. آدرس زیر را به کادر Additional Board Manager URLs اضافه کنید:
|
1 |
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json |
(آدرس اینترنتی) اگر کادر خالی نیست، میتوانید URLها را با کاما از هم جدا کنید.

به مسیر Tools > Board > Boards Manager بروید.

برای STM32 جستجو کنید، آخرین نسخه را انتخاب کرده و روی Install کلیک کنید.
چند مگابایت داده باید دانلود و نصب شود، بنابراین صبور باشید.

پس از اتمام نصب، Arduino IDE را ببندید و دوباره باز کنید.
نصب STM32CubeProg
STM32CubeProg را از وبسایت ST دانلود و نصب کنید:
https://www.st.com/en/development-tools/stm32cubeprog.html

STM32CubeProg را اجرا کنید. این برنامه به این شکل خواهد بود:

STM32CubeProg را ببندید.
پیکربندی Arduino IDE
از مسیر Tools > Board > STM32 Board، گزینه Generic STM32F4 series را انتخاب کنید. سپس به Tools > Board Part Number بروید و BlackPill F411CE را انتخاب کنید.

توجه: این آموزش بر اساس STM32F411CE است. برای STM32F401CE، گزینه BlackPill F401CC را انتخاب کنید.

در بخش USB Support، گزینه CDC (generic “Serial” supersede U(S)ART) را انتخاب کنید.

در بخش Upload method، گزینه STM32CubeProgrammer (DFU) را انتخاب کنید.

اینها تنظیمات ابزار شما هستند:

برد STM32 Black Pill را به پورت USB کامپیوتر خود متصل کنید.
فعالسازی بوتلودر DFU

برای قرار دادن برد در حالت بوتلودر از دکمههای BOOT0 و NRST روی برد استفاده کنید:
- دکمه BOOT0 را فشار داده و نگه دارید
- دکمه NRST (ریست) را فشار داده و رها کنید تا پردازنده روشن و ریست شود
- دکمه BOOT0 را رها کنید
توجه داشته باشید که هر بار که میخواهید برنامهٔ جدیدی روی Black Pill دانلود کنید، باید همین مراحل را انجام دهید.
آپلود اسکچ
یک اسکچ جدید ایجاد کنید و کد زیر را کپی و جایگذاری کنید:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/* Blink onboard LED at 0.1 second interval */ void setup() { // initialize digital pin PB2 as an output. pinMode(PC13, OUTPUT); // LED connect to pin PC13 } void loop() { digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait for 100mS digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW delay(100); // wait for 100mS } |
روی دکمه Upload کلیک کنید تا کد کامپایل شده و به برد STM32 Black Pill آپلود شود.

باید چراغ LED آبی را با فاصلهٔ ۰.۱ ثانیه روشن و خاموش شدن مشاهده کنید.






