سلام
دو سالی می شه پست جدید ارسال نکردم و علت خدمت سربازی بود که شکر خدا به اتمام رسید
قبل خدمت یه تاپیک ایجاد کرده بودم با عنوان USB در بیست دقیقه که USB رو با استفاده از Libusb.net و MikroC ARM راه انداختیم و ...
اما باید بگم که نه دل خوشی از Libusb.net دارم و نه کامپایلر MikroC ARM به درد حتی لای جرز دیوار می خوره.
در حال حاضر لایبرری Libusb.net قدیمی شده و دیگه آپدیت نمیشه و من هم خشصاً باهاش مشکل داشتم اما Nuget بجاش داره هر از چند گاهی آپدیت های HidLibrary رو ارائه میده و خیلی هم عالیه، پس قراره این بار از این لایبرری برای ارتباط با USB Device مون در Visual Studio استفاده کنیم.
و اما CubeMX ، توسعه داده شده توسط ST ، یه ویزارد خیلی خیلی عالی که واقعا کار آدمو برای راه اندازی peripheral های میکروکنترولر های STM32 ساده می کنه، پروژه کامپایلر مورد نظر رو تحویل میده و شما رو از درگیر شدن با سخت افزار و گیر و گور های کامپایلر معاف می کنه. در واقع باید بگم ... میره.
خب بیاین شروع کنیم
آخرین نسخه از نرم افزار CubeMX رو می تونید از این لینک دریافت کنید که در حال حاضر 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 رو بر اساس پروگرامرمون انتخاب می کنیم.
و می خوایم به پایه PG14 یه LED متصل کنیم پس باید پایه مورد نظر پیکربندی و ترجیحاً نامگذاری شه.
برای این کار روی پایه مورد نظر کلیک کرده و GPIO_Output رو انتخاب می کنیم و برای نامگذاری پایه روی آن راست کلیک می کنیم.
برای تنظیم کلاک میکرو به برگه Clock Configuration میریم در صورت مواجه شدن با پیغام خطا، No رو بزنید و مقادیر رو بر اساس این عکس تنظیم می کنیم (کریستال خارجی 12MHz هست):
این ویدئو آموزش راه اندازی واحد USB هست که باید قبلش توضیحات بالا رو میدادم.
خب بریم سراغ Visual Studio:
برای استفاده از Hidlibrary باید Pacage Manager سایت Nuget ، بر روی ویژال استادیو نصب شود که می تونید از این لینک: VS 2013 VSIX (v2.12.0) دانلودش کنید.
و با استفاده از آموزش داده شده در این لینک می تونید لایبرری های مورد نظر رو نصب کنید.
خب کافیه در Package Manager Console دستور زیر رو بنویسید:
Install-Package hidlibrary
این هم لینک آخرین نسخه از Hidlibrary با توضیحات دقیق تر.
مثال های Keil ARM , CubeMX و Visual Studio آپلود شده اند