برد STM مدارهای الکترونیک

راه اندازی برد STM32 با استفاده از نرم افزار KEIL و توابع HAL

programming-stm32-keil-and-hal-digispark-
نوشته شده توسط علی زاهدی

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

 

در سال ۱۹۸۳ شرکت Acton تصمیم به ساخت میکروکنترلر های ۱۶ بیتی گرفت و این شروعی برای پردازنده های ARM بود، ابتدا کلمه ARM مخفف Acron RISC Machine بود تا سال ۱۹۹۰ که شرکت اپل نیز به ARM پیوست و کلمه ARM به مخفف Advanced RISC Machine تغییر کرد و شرکت ARM Holdings تاسیس شد. جالب است بدانید شرکت ARM Holdings هیچ تراشه ای تولید نمیکند و تمام درآمد این شرکت از فروش امتیاز ساخت تراشه های ARM به شرکت های دیگر کسب می شود.در سال ۲۰۱۱ مشتریان ARM توانستند ۷٫۹ میلیارد ابزار مبتنی بر این معماری را وارد بازار کنند. یکی از معروف ترین پردازنده های مبتنی بر معماری ARM نسل ARM7 می باشد، که اکثر تولید کنندگان برای پیاده سازی میکروکنترلر های خود از این نسل استفاده می کنند، همچنین هسته ی Cortex-M3 جایگزینی قدرتمند برای ARM7 می باشد. از شرکت های رایج سازنده میکروکنترلر های مبتنی بر معماری ARM میتوان به ST، ATMEL و NXP اشاره کرد.

 

معرفی برد STM32 با تراشه ARM

بردهای STM نوعی از بردهای امبدد بر پایه تراشه‌های ARM Cortex می‌باشند. ظاهر کلی برد STM32 بسیار شبیه به آردوینو نانو Nano می‌باشد. البته این برد هم مانند آردوینو اوپن سورس میباشد. برد STM32 مورد استفاده در این آموزش از نوع STM32F103C8T6 انتخاب شده است. برد دارای دو اسیلاتور میباشد. یک کریستال ۸MHz و دیگری کریستال ۳۲KHz که توانایی راه اندازی ساعت RTC داخلی را دارای می‌باشد. تنها همین کریستال کوچک امکان استفاده از برد STM32F103C8T6 به عنوان پردازنده بسیار کم مصرف را فراهم می‌کند. اگر شما کاربر گرامی علت این موضوع را نمی‌دانید، در قسمت نظرات سوال بپرسید. دیگر ویژگی‌های این برد عبارتست از، یک میکروکنترلر ۳۲ بیتی از خانواده آرم و گروه کورتکس m۳ می‌باشد. حداکثر کلاک این میکروکنترلر ۷۲ کیلو بایت را حفظ و حافظه فلش آن ۶۴ کیلوبایت می‌باشد. همچنین حافظه SRAM آن ۲۰ کیلو بایت و ولتاژ کاری ۳. ۳ ولت است.

 

راه اندازی برد STM32 با کیل - دیجی اسپارک

 


اتصالات برد STM32


ابتدا اتصالات برد STM32 را طبق تصویر به پروگرامر STLINK V2 متصل کنید، و پروگرامر را به سیستم متصل کنید.

اتصالات پروگرامر USB به ماژول STM32 - دیجی اسپارک

 


راه اندازی برد STM32


برای برنامه نویسی این میکروکنترلر ها نیاز است که ابتدا دو نرم افزار KEIL و STM32CubeMX را نصب کنید. لازم به ذکر است برای دانلود نرم STM32CubeMX نیاز است که از VPN استفاده نمایید، تا گزینه ی دانلود برای شما باز شود. همچنین درایور مورد نیاز برای پروگرامر STLINK V2 را از این لینک دانلود کنید. پس از نصب و دانلود پکیج های مورد نیاز وارد نرم افزار STM32CubeMX شده، سپس از منوی فایل گزینه New Project را انتخاب کنید. در پنجره ی باز شده باید میکروکنترلر مورد نطر خود را انتخاب کنید، میکروکنترلری که در این آموزش استفاده شده است مدل STM32F103C8 می باشد. پس از انتخاب میکروکنترلر مورد نطر گزینه Start Project را انتخاب کنید. در پنجره ی باز شده می توانید میکروکنترلر مورد نطر خود را به صورت گرافیکی مشاهده کنید. در این قسمت با کلیک بر روی پایه ای مورد نطر منو ای با گزینه های مختلف باز می شود که با انتخاب گزینه ی GPIO_Output پایه بعنوان خروجی معرفی می شود.

سپس از نوار سمت چپ بخش System Core گزینه RCC  را انتخاب کنید و در بخش Mode گزینه ی (High Speed Clock(HSC را بر روی Crystal/Ceramic Resonator تنظیم کنید.از نوار تنظیمات بالا بخش Project Manager در قسمت Project Name نامی برای پروژه انتخاب کنید. سپس در قسمت Project Location مسیر مورد نظر خود را برای پروژه انتخاب کنید. قسمت Toolchain / IDE را بر روی MDK-ARM V5 تنظیم کنید و گزینه ی GENERATE CODE را انتخاب کنید. در پنجره ی باز شده گزینه ی Open Project را انتخاب کنید. پس از باز شدن نرم افزار KEIL در نوار سمت چپ پوشه پروژه را باز کنید و وارد پوشه ی Application/User شده و فایل main را باز کنید. کد برنامه داخل این فایل موجود است، کد زیر را داخل حلقه (while(1 کپی کنید و سپس از منوی Project گزینه ی Build Target  را انتخاب کنید پس از اتمام کامپایل، از منوی Flash گزینه ی Download  را انتخاب کنید. اگر با پیغام no target connected مواجه شدید ابتدا کلید reset روی برد را نگه داشته و گزینه ی Download را بزنید و سپس کلید reset را رها کنید. پس از دانلود شدن برنامه روی ای سی، بار دیگر کلید reset را فشار دهید، مشاهده خواهید کرد که LED موجود روی برد STM شروع به پشمک زدن خواهد کرد.

 

تمامی توضیحات بالا را می توانید داخل ویدیو به صورت عملی مشاهده نمایید.

 

 

دستور HAL_GPIO_TogglePin باعث تغییر وضعیت خروجی مورد نظر می شود، سپس دستور HAL_Delay تاخیر به مدت زمان دلخواه شما ایجاد می کند.

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

 


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


 

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

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

 

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

علی زاهدی

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

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

۵ دیدگاه