4 فایل پیوست
راه اندازی واحد USB میکروکنترولر STM32 با استفاده از CubeMX و Keil ARM
سلام :hi:
دو سالی می شه پست جدید ارسال نکردم و علت خدمت سربازی بود که شکر خدا به اتمام رسید
قبل خدمت یه تاپیک ایجاد کرده بودم با عنوان [Dear Guest/Member you can't see link before replyclick here to register] که USB رو با استفاده از Libusb.net و MikroC ARM راه انداختیم و ...
اما باید بگم که نه دل خوشی از Libusb.net دارم و نه کامپایلر MikroC ARM به درد حتی لای جرز دیوار می خوره.
در حال حاضر لایبرری Libusb.net قدیمی شده و دیگه آپدیت نمیشه و من هم خشصاً باهاش مشکل داشتم اما [Dear Guest/Member you can't see link before replyclick here to register] بجاش داره هر از چند گاهی آپدیت های HidLibrary رو ارائه میده و خیلی هم عالیه، پس قراره این بار از این لایبرری برای ارتباط با USB Device مون در Visual Studio استفاده کنیم.
و اما CubeMX ، توسعه داده شده توسط ST ، یه ویزارد خیلی خیلی عالی که واقعا کار آدمو برای راه اندازی peripheral های میکروکنترولر های STM32 ساده می کنه، پروژه کامپایلر مورد نظر رو تحویل میده و شما رو از درگیر شدن با سخت افزار و گیر و گور های کامپایلر معاف می کنه. در واقع باید بگم ... میره. :mrgreen:
خب بیاین شروع کنیم :018:
آخرین نسخه از نرم افزار CubeMX رو می تونید از [Dear Guest/Member you can't see link before replyclick here to register] دریافت کنید که در حال حاضر 4.16.0 هست.
پس از دانلود و نسب CubeMX باید آخرین firmware مربوط به میکرومنترولر مورد نظر رو دریافت کنید که برای این کار کافیه با زدن کلید های Alt+U این کار رو انجام بدید.
برای ایجاد پروژه بر روی گزینه New Project کلیک کرده و میکرو یا بورد مورد نظر رو انتخاب و OK می کنیم که در این پروژه من از STM32F429 استفاده کردم:
می خوایم از واحد USB_FS در حالت Device استفاده کنیم پس USB_OTG_FS رو روی Device_Only قرار می دیم و در قسمت MiddleWares و USB_Device رو Custom Human Interface Device Class قرار میدیم.
پر واضحه برای اینکه از کریستال خارجی استفاده کنیم و همینطور برای پروگرام کردن میکرو از طریق مثلا SWD باید موارد ذیل رو هم در نظر بگیریم:
واحد RCC رو روی کریستال خارجی تنظیم می کنیم.
و SYS/Debug رو بر اساس پروگرامرمون انتخاب می کنیم.
[Dear Guest/Member you can't see link before replyclick here to register]
و می خوایم به پایه PG14 یه LED متصل کنیم پس باید پایه مورد نظر پیکربندی و ترجیحاً نامگذاری شه.
برای این کار روی پایه مورد نظر کلیک کرده و GPIO_Output رو انتخاب می کنیم و برای نامگذاری پایه روی آن راست کلیک می کنیم.
برای تنظیم کلاک میکرو به برگه Clock Configuration میریم در صورت مواجه شدن با پیغام خطا، No رو بزنید و مقادیر رو بر اساس این عکس تنظیم می کنیم (کریستال خارجی 12MHz هست):
[Dear Guest/Member you can't see link before replyclick here to register]
[Dear Guest/Member you can't see link before replyclick here to register] آموزش راه اندازی واحد USB هست که باید قبلش توضیحات بالا رو میدادم.
خب بریم سراغ Visual Studio:
برای استفاده از Hidlibrary باید Pacage Manager سایت Nuget ، بر روی ویژال استادیو نصب شود که می تونید از این لینک: [Dear Guest/Member you can't see link before replyclick here to register]دانلودش کنید.
و با استفاده از [Dear Guest/Member you can't see link before replyclick here to register] می تونید لایبرری های مورد نظر رو نصب کنید.
خب کافیه در Package Manager Console دستور زیر رو بنویسید:
Install-Package hidlibrary
[Dear Guest/Member you can't see link before replyclick here to register]
مثال های Keil ARM , CubeMX و Visual Studio آپلود شده اند:hi: