در صفحه اصلی آموزش میکروکنترلرهای STM32، در مورد اهمیت این میکروکنترلرها صحبت کردیم. در این بخش که مربوط به آموزش STM32 با توابع HAL است، به معرفی این درایورها میپردازیم و سپس وارد بخشهای عملی آموزش خواهیم شد. در مجموعه آموزش STM32 با توابع HAL تمام تلاش خود را کردهایم که تمام دستگاههای جانبی (Peripheral) میکروکنترلر STM32F103 را با یک پروژه ابتدایی اما کاربردی پوشش دهیم. چند پروژه با پیچیدگی بیشتر نیز میان قسمتهای مختلف آموزش و در انتها گنجاندهشده است. امیدواریم که این آموزشها موردتوجه علاقهمندان به الکترونیک و میکروکنترلرها، قرار گیرد.
کتابخانههای Hardware Abstraction Layer
درایورهای HAL باهدف ارائه مجموعهای از API ها برای تعامل آسان با لایههای بالای پروژه (دور از سختافزار) طراحیشدهاند. با استفاده از کتابخانه HAL، زمان و انرژی بیشتر صرف توسعه خود نرمافزار میشود و درگیری با سختافزار به حداقل میرسد. برخی از ویژگیهای اصلی درایورهای HAL عبارتاند از:
- هر درایور HAL، شامل مجموعهای از توابع است که اکثر ویژگیهای Peripheral مربوطه را در هر خانواده از میکروکنترلرهای STM32، پوشش میدهند.
- وجود 3 مدل API programming مختلف که عبارتند از: polling ,Interrupt, DMA
- API های کاملا سازگار با RTOS :
- API ها کاملا Reentrant هستند.
- استفاده دقیق از timeoutها در حالت polling
- پشتیبانی از استفاده و فراخوانی چندگانه هر یک از دستگاههای جانبی (مثل USART1 یا USART2)
- همهی API های HAL از مکانیسم توابع user-callback استفاده میکنند.
- مکانیسم قفل کردن: دسترسی امن به سختافزار برای جلوگیری از دسترسیهای نامطمئن به منابع.
در مورد آموزش توابع HAL با جزییات بیشتر، را در قسمت اول این سری آموزش، توضیح خواهیم داد. پس معرفی بیشتر HAL را به همان مقاله واگذار میکنیم. در ادامه میخواهیم کمی بیشتر در مورد سری آموزش STM32 با توابع HAL صحبت کنیم و بعد از آن سر فصل این مجموعه آموزش را معرفی کنیم.
ابزارهای مورد استفاده در آموزش STM32 با توابع HAL
در این سری آموزش، علاوه بر ابزارهای کوچک و یا خاص سختافزاری یا نرمافزاری که برای یک پروژه استفاده میشوند (و در همانجا معرفی خواهند شد)، از یک بورد آموزشی برای میکروکنترلر STM32F103C8T به نام BluePill و در بعضی آموزشها نیز از بورد STM32F103RET (به همراه بردبورد و تجهیزات ازایندست مثل سیم بردبورد و..) استفاده میشود. ابزارهای نرمافزاری موردنیاز هم STM32Cube MX و STM32Cube IDE هستند. در مورد هر دو نرمافزار و کاربرد آنها در قسمت دوم آموزش صحبت خواهد شد.
منبع: سیسوگ