۱۴۰۳ خرداد ۱۰, پنجشنبه

تصحیح خطاهای STM32CubeIDE و نوشتن اولین برنامه



برنامه STM32CubeIDE بر روی سیستم من به درستی کار نمیکرد. در حقیقت بعد از تنظیم سیستم در بخش گرافیکی هیچ کدی ایجاد (جنریت) نمیشد.  در این پست میخوام دلیل مشکل و راه حلی که من بهش رسیدم رو توضیح بدهم.

راه حل هایی با جستجو پیدا کردم که مشکل من رو حل نمیکرد، از جمله :

  • ورود به سیستم (Login) در نرم افزار که مستلزم ثبت نام در سایت St.com و تایید ایمیل بود. من ازشماره موبایل ایران استفاده کردم که متاسفانه هیچ تاییدیه ای برام نیومد و با ایمیل دیگری و انتخاب لوکیشن کشوری بجز ایران، بدون استفاده از شماره موبایل تونستم ثبت نامم رو کامل کنم.
  • نصب نرم افزار STMCubeMX که تاثیری در حل مشکل من نداشت.
  • پاک کردن و نصب مجدد STMCubeIDE که تاثیری در حل مشکل نداشت.
و در نهایت تونستم بصورت اتفاقی مشکل رو پیدا کنم که بسیار ساده بود و به راحتی حل شد:
در نرم افزار بصورت پیش فرض امکان اتصال به اینترنت غیرفعال هست. البته در صورت فعال بودن باید حتما از فیلتر شکن برای اتصال استفاده کنید. ممکنه با استفاده از ابزار شکن هم بشه با تغییر IP از سد تحریم عبور کرد ( من امتحان نکردم و مستقیما از فیلتر شکن استفاده کردم.) برای تغییر امکان اتصال به اینترنت از منوی  [Window]>[Preferences]>[STM32Cube]>Firmware Updater قابل تنظیم هست :


در انتها با زدن دکمه Check Connection اتصال صحیح به اینترنت رو چک میکنیم. در صورتیکه همه چیز به درستی پیش بره بعد از Apply and Close برنامه شروع به دانلود کتابخانه های مورد نیاز پروژه شما از سایت st خواهد کرد. در غیر اینصورت اتصال فیلترشکنتون رو چک کنید.

رفع خطای No ST-link detected! Please connect ST-LINK and restart debug session

بعد از نوشتن کد و کامپایل بدون خطای کد موقع دانلود برنامه روی میکرو با این خطا مواجه شدم. مشکل از جایی ناشی شده بود که من از یک هارد دیسک و فلش همزمان در  پورت USB استفاده میکردم. با اینکه STLink ظاهرا مشکلی نداشت و برق به پروگرمر و به تبع اون میکرو منتقل میشد ولی بدلیل محدودیت باس USB و اشغال اون توسط بقیه سخت افزارها من دسترسی به میکرو نداشتم . برای حل این مشکل هارد دیسک رو جدا کردم و مشکل حل شد.

درباره برنامه نویسی با توابع HAL و LL در ادامه توضیح خواهم داد. احتمالا کدها بصورت همزمان برای Keil و STM32CubeIDE نوشته بشوند. ( من شخصا برنامه نویسی در سطح رجیستر رو ترجیح میدم ولی برنامه نویسی با توابع HAL رو هم اینجا مینویسم.)


هیچ نظری موجود نیست:

ارسال یک نظر