پروگرام کردن میکروکنترلر STM32 با ST-Link در Keil

پروگرام کردن میکروکنترلر STM32 با ST-Link در Keil
برنامه نویسانی که از محیط Keil برای برنامه نویسی میکروکنترلرهای STM32 خود استفاده می کنند، طبیعتا راحت تر هستند که ST-Link را مستقیم به Keil ارتباط دهند و مستقیم در محیط کیل کار برنامه ریزی میکروکنترلر هدف را انجام دهند. در گذشته روش پروگرام کردن STM32 را با استفاده از نرم افزار اختصاصی خود ST در قالب مقاله ای جداگانه بیان کردیم که نحوه ی سیم بندی و نصب درایور و … ها در آن مقاله گفته شده است. بنابراین در این مقاله صرفا به بررسی می کنیم که در محیط Keil چگونه می توان مستقیم میکروکنترلر هدف را با استفاده از ST-Link برنامه ریزی کرد.
تنظیمات محیط STM32cubeMX
در محیط STM32cubeMX نیاز است در بخش SYS ، فیلد Debug را برابر با Serial Wire تنظیم شود و با سایر تنظیمات موردنیاز پروژه، پروژه تولید شود. مطابق تصویر زیر.

تنظیمات محیط Keil
به منظور تنظیمات مربوط به پروگرامر ST-Link در محیط Keil گام های زیر را به ترتیب انجام می دهیم. وارد بخش Options for Target می شویم. مطابق تصویر زیر.
1. از پنجره باز شده، تب Debug را انتخاب می کنیم. سپس مطابق تصویر از پنجره ی کشابی ST-Link Debugger را انتخاب می کنیم و دکمه ی Settings را می زنیم.
2. در این حالت اگر اتصال سیم های بین پروگرامر و میکروکنترلر هدف صحیح باشد، در سمت راست پنجره ی باز شده در بخش SW Device ، مشاهده می کنیم که یک خط نمایان می شود و میکروکنترلر تشخیص داده می شود.
3. از تب Flash Download تیک Reset and Run را علامت می زنیم و در نهایت دکمه ی OK را انتخاب می کنیم و کار تمام است.
4. حالا کافیست که با استفاده از دکمه ی download در محیط Keil اقدام به برنامه ریزی برد کنیم.
نکات پیرامون پروگرام کردن
دقت کنید در صورتی که پروگرامر ST-Link توسط Keil تشخیص داده نشد، نیاز است که دو مورد بررسی شود.
مورد 1
مورد اول ورژن فریمور خود پروگرامر ST-Link است، به این صورت که اگر ورژن جدیدتری در دسترس باشد خود Keil اطلاع می دهد و نیاز است که فریمور به روزرسانی شود. اگر از پروگرامر Fake استفاده می کنید، احتمالا بعد از بروزرسانی ها به مشکل بخورید و پروگرام بعد از آپدیت شدن کار نکند. اما برای ورژن های اصلی مشکلی دیده نشده.
مورد 2
مورد دوم وضعیت پایه های بوت در خانواده هایی مثل STM32F103x می باشد. در صورتی که در اولین تلاش بعد از پروگرام کردن پیغام خطا دریافت کردید، نیاز است که برای اولین بار وضعیت بوت 0 را برابر با 1 منطقی تنظیم کنید، مجدد جهت پروگرام کردن اقدام کنید، بعد از پروگرام شدن بورد وضعیت پایه ی بوت0 را به 0 تغییر دهید، برای تلاش های بعدی جهت پروگرام کردن میکروکنترلر، نیازی به تغییر وضعیت مجدد پایه های بوت وجود ندارد. در ورژن ها جدید Keil ، بعد از برنامه ریزی برد ، نیاز است که میکرو به صورت دستی یک بار ریست شود تا برنامه آن اجرا شود.
کار تمام است.
منابع پیشنهادی جهت یادگیری بیشتر STM32
می توانید در دوره آموزش STM32 در لینک زیر شرکت کنید.
لینک های مفید
پروگرام کردن میکروکنترلر STM32 با STM32 ST-Link Utility
پروگرام کردن میکروکنترلر STM32 با استفاده از Jlink
اگر سوال، پیشنهاد، نظر و یا … داری، از قسمت نظرات در پایین همین صفحه، می تونید با ما و بقیه ی خوانندگان درمیان بگذارید.
جهت مطلع شدن از آموزش های جدید به خبرنامه ی EasyMCU بپیوندید.
درباره مرتضی زندی
خلق کردن شماره 1 علاقه مندی های من هست. برنامه نویسی بهترین ابزاری بوده که تا الان برای این کار پیدا کردم. بیس الکترونیک دارم و دستی بر آتش در دنیای رشته های مجاور. تجربه سال ها فعالیت در تیم های R&D رو دارم، در این بین در حوزه ی امبدد سیستم ها فعالیتم پررنگ تر هست. عاشق یادگیری و یاد دادن هستم و تلاش می کنم تجربیاتم رو به زبانی ساده از طریق EasyMCU.org به نحوی کاربردی و موثر با علاقه مندان این حوزه به اشتراک بذارم.
نوشته های بیشتر از مرتضی زندیمطالب زیر را حتما مطالعه کنید
آموزش نصب و راه اندازی سیستم عامل Free RTOS برای آردوینو Arduino
آموزش نصب و راه اندازی سیستم عامل Free RTOS روی STM32
آموزش FreeRTOS نحوه استفاده از میوتکس Mutex
آموزش Free RTOS نحوه استفاده از سمافور Semaphore
آموزش STM32 راه اندازی وقفه خارجی EXTI
معرفی کتاب ARM
10 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
اقا مرتضی حرف نداری درود بر شرفت
درود بر شما آقا علی گرامی
خوشحالم مفید بوده.
با آرزوی بهترین ها
با سلام
چگونه می توان وضعیت پایه بوت میکروی stm32 را از 0 به 1 و مجددا به صفر برگرداند
درود بر شما.
با توجه به بردی که استفاده میکنید، تعدادی جامپر برای تنظیم وضعیت بوت درنظر گرفته شده.
با آرزوی بهترین ها
سلام مجدد
من میخوام از طریق نرم افزاری این کار را انجام بدم راهی وجود داره؟
یعنی میخوام دیگه نیازی نباشه که بطریق دستی بکبار ری ست بشه تا برنامه اجرا بشه(در محیط keil)
درود بر شما.
این مورد ظاهرا یک باگ سمت ورژن جدید Keil هست، در ورژن های قدیمی تر اینطور نبود. برای st-link بنده راهی رو نمیشناسم که در Keil مستقیم ریست بشه، با توجه به باگی که عرض کردم.
منتها اگر مهمه، میتونید از Jlink استفاده کنید، در محیط Keil نیازی به ریست دستی نداره.
با آرزوی بهترین ها.
عالی
درود بر شما.
مرسی از فیدبک شما. خوشحالم مفید بوده.
ممنون
درود بر شما.
خواهش می کنم. خوشحالم مفید بوده.