در صفحه اصلی آموزش میکروکنترلرهای 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 صحبت کنیم و بعد از آن سر فصل این مجموعه آموزش را معرفی کنیم.

بررسی تخصصی GPIO در STM32 | قسمت ششم آموزش STM32 توابع HAL

بررسی تخصصی GPIO در STM32 | قسمت ششم آموزش STM32 توابع HAL

در قسمت پیشین سری آموزش STM32 با توابع HAL، اولین برنامه را توسعه دادیم و با عملیات ابتدایی GPIO آشنا شدیم. در قسمت حاضر، می‌خواهیم در مورد جزییات بیشتر از GPIO صحبت کنیم. با سیسوگ همراه باشید. در بخش قبلی در مورد تنظ...

ادامه مطلب

GPIO

پایه های ورودی و خروجی GPIO در STM32 | قسمت پنجم آموزش STM32 با توابع HAL

در قسمت‌های پیشین سری آموزش STM32 با توابع HAL، با محیط نرم‌افزار STM32CubeIDE، پیکربندی پروژه و نحوه دیباگ آشنا شدیم. در این قسمت می‌خواهیم اولین پروژه عملی سری آموزش را انجام دهیم و به سراغ کد نویسی و استفاده از توابع HAL برویم....

ادامه مطلب

دیباگ در STM32CubeIDE

دیباگ در STM32Cube IDE برای STM32 | قسمت چهارم آموزش STM32 با توابع HAL

در قسمت پیشین از سری آموزش STM32 با توابع HAL، در مورد ریست و کلاک میکروکنترلر و نحوه تنظیم واحد RCC توضیح دادیم. در این قسمت، می‌خواهیم نحوه دیباگ در STM32CubeIDE را یاد بگیریم، با سیسوگ همراه باشید.  بر...

ادامه مطلب

منابع کلاک 

بررسی RCC و منابع کلاک در STM32 | قسمت سوم آموزش STM32 با توابع HAL

در قسمت پیشین از سری آموزش STM32 با توابع HAL، و نرم‌افزارهای مورداستفاده آشنا شدیم و نحوه پیکربندی پروژه‌ها را یاد گرفتیم. در این قسمت قصد آشنایی با واحد RCC در کتابخانه HAL، تشریح ویژگی‌های آن و همچنین چگونگی تنظیم و استفاده از ...

ادامه مطلب

بررسی محیط CubeIDE برای STM32 | قسمت دوم آموزش STM32 با توابع HAL

بررسی محیط CubeIDE برای STM32 | قسمت دوم آموزش STM32 با توابع HAL

در اولین قسمت از سری آموزش STM32 با توابع HAL، در مورد درایورهای HAL و مزیت‌ها و معایب آن‌ها صحبت کردیم. در این قسمت می‌خواهیم با نحوه پیکربندی آشنا شویم و همچنین محیط CubeIDE را بررسی کنیم. در این سری آموزش، برای پیکربندی پروژه و...

ادامه مطلب

توابع HAL

معرفی توابع HAL | قسمت اول آموزش STM32 با توابع HAL

در بخش معرفی آموزش میکروکنترلرهای STM32، با این خانواده از میکروکنترلرها آشنا شدیم و درباره اهمیت یادگیری آن‌ها صحبت کردیم. در این سری آموزش یکی از ابزارهای برنامه نویسی این میکروکنترلرها، یعنی توابع HAL را می‌آموزیم. درباره این ک...

ادامه مطلب