آموزش STM32 با توابع LL

 

آموزش STM32 با توابع LL

در صفحه اصلی آموزش میکروکنترلرهای STM32، در مورد اهمیت این میکروکنترلرها صحبت کردیم. در این بخش که مربوط به سری آموزش STM32 با توابع LL است، به معرفی این درایورها می‌پردازیم و سپس وارد بخش‌های عملی آموزش خواهیم شد. در مجموعه آموزش STM32 با توابع LL تمام تلاش خود را کرده‌ایم که تمام دستگاه‌های جانبی (Peripheral) میکروکنترلر STM32F103 را با یک پروژه ابتدایی اما کاربردی پوشش دهیم. امیدواریم که این آموزش‌ها موردتوجه علاقه‌مندان به الکترونیک و میکروکنترلرها قرار گیرد. برای ادامه راه با سیسوگ همراه باشید.

 

کتابخانه‌های Low Layer

قبل از هر چیزی باید به این سؤال جواب دهیم که توابع LL در STM32 چه هستند؟ شرکت ST برای راه‌اندازی و توسعه نرم‌افزار برای میکروهای خود، ابزارهایی در اختیار کاربران قرار داده است که ازجمله این ابزارها، کتابخانه‌های LL یا Low Layer هستند. ویژگی بارز این توابع نزدیک بودن به لایه‌ی سخت‌افزار و دسترسی مستقیم به Register های میکروکنترلر است. به همین دلیل استفاده از این توابع به دانش سخت‌افزاری نیاز دارد.

درواقع درایورهای LL باهدف ارائه یک لایه‌ی سریع و سبک نزدیک به سخت‌افزار برای کاربران متخصص، طراحی‌شده است. درایورهای LL شامل بخش‌ها و ویژگی‌های زیر می‌شوند:

[su_list icon="icon: check" icon_color="#34ff4f"]

  • مجموعه‌ای از توابع برای راه‌اندازی ویژگی‌های اصلی دستگاه‌های جانبی (Peripheral)، که منطبق بر پارامترهای مشخص‌شده در ساختارهای داده، نوشته‌شده‌اند.
  • مجموعه‌ای از توابع که ساختارهای داده‌ی مربوط به راه‌اندازی را با مقدارهای ریست، مقداردهی می‌کنند.
  • توابعی برای De-initialization دستگاه‌های جانبی (بازگرداندن رجیستر دستگاه‌های جانبی به مقدارهای پیش‌فرض آن‌ها)
  • یک مجموعه از توابع inline برای دسترسی مستقیم و atomic به رجیسترها
  • استقلال کامل از درایورهای HAL؛ توابع LL را می‌توان به‌تنهایی و به‌صورت مجزا از HAL، یا به‌طور ترکیبی با HAL استفاده کرد.
  • پوشش کامل ویژگی‌های دستگاه‌های جانبی که پشتیبانی می‌شوند.

 

نکته قابل‌توجه در مورد توابع LL این است که اعمالی که انجام می‌دهند و سرویس‌های ارائه می‌کنند، دقیقاً انعکاس توانایی‌های سخت‌افزاری هستند که در زمان فراخوانی به‌صورت یک عملیات one-shot اجرا می‌شوند. همچنین ازآنجاکه این سرویس‌ها هیچ پروسه‌ای را پیاده نمی‌کنند، نیازی به حافظه برای ذخیره حالت، شمارنده یا اشاره‌گر ندارند. همه‌ی کارها با تغییر محتوای رجیستر مربوط به دستگاه‌های جانبی موردنظر انجام می‌شوند.

 

در کتابخانه‌های low layer علاوه بر 5 هدرفایل که مربوط به‌ویژگی‌های سیستم و Cortex هستند، به ازای هر دستگاه جانبی یک هدرفایل و یک فایل C وجود دارد. همچنین قابل‌ذکر است که برای LL فایل Configuration وجود ندارد و فایل‌های مربوط به درایورهای LL در پوشه درایورهای HAL قرار دارند.

در همه درایورهای low-layer، تنها فایلی که Include می‌شود، فایل CMSIS دستگاه موردنظر است.

در این سری آموزش، علاوه بر ابزارهای کوچک و یا خاص سخت‌افزاری یا نرم‌افزاری که برای یک پروژه استفاده می‌شوند (و در همان‌جا معرفی خواهند شد)، از یک بورد آموزشی برای میکروکنترلر STM32F103C8T به نام BluePill و در بعضی آموزش‌ها نیز از بورد STM32F103RET (به همراه بردبورد و تجهیزات ازاین‌دست مثل سیم بردبورد و..) استفاده می‌شود. ابزارهای نرم‌افزاری موردنیاز هم STM32 Cube MX و Keil uVersion5 هستند. نرم‌افزار اول که توسط خود شرکت منتشرشده است، برای پیکربندی و راه‌اندازی پروژه و کد استفاده می‌شود. نرم‌افزار Keil نیز یک IDE شناخته‌شده است که برای توسعه کد پروژه و دیباگ و خطایابی آن کاربرد دارد.

  • نظرات

    208 نظر

  • پسند ها

    6

آموزش STM32 با توابع LL قسمت اول: پردازنده‌های ARM
آموزش STM32 با توابع LL قسمت اول: پردازنده‌های ARM

آموزش STM32 با توابع LL قسمت اول: پردازنده‌های ARM

۱ مرداد ۱۳۹۹

همان‌طور که می‌دانید میکروکنترلرها یا پردازنده‌های ARM (تفاوت میکروکنترلر و پردازنده در ادامه ذکر خواهد شد، فعلاً این دو را معادل هم...

  • 99
  • 5 دقیقه مطالعه
  • 1
1
آموزش STM32 با توابع LL قسمت دوم: روش‌های پیکره‌بندی و انواع توابع
آموزش STM32 با توابع LL قسمت دوم: روش‌های پیکره‌بندی و انواع توابع

آموزش STM32 با توابع LL قسمت دوم: روش‌های پیکره‌بندی و انواع توابع

۱۱ مرداد ۱۳۹۹

در قسمت اول از آموزش STM32 با توابع LL، در رابطه با پردازنده و میکروکنترلر صحبت کردیم و به تفاوت‌های میکروکنترلر و...

  • 94
  • 9 دقیقه مطالعه
  • 2
2
آموزش STM32 با توابع LL قسمت سوم: STM32CubeMX و Keil
آموزش STM32 با توابع LL قسمت سوم: STM32CubeMX و Keil

آموزش STM32 با توابع LL قسمت سوم: STM32CubeMX و Keil

۲۱ مرداد ۱۳۹۹

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

  • 97
  • 6 دقیقه مطالعه
  • 0
3
آموزش STM32 با توابع LL قسمت پنجم: GPIO-Output
آموزش STM32 با توابع LL قسمت پنجم: GPIO-Output

آموزش STM32 با توابع LL قسمت پنجم: GPIO-Output

۲۹ شهریور ۱۳۹۹

در قسمت چهارم از آموزش STM32 با توابع LL، با واحد RCC آشنا شدیم و جزئیات و دلیل وجود کلاک در مدارات دیجیتال را بررسی کردیم،...

  • 85
  • 10 دقیقه مطالعه
  • 1
4
آموزش STM32 با توابع LL قسمت ششم: GPIO-Input
آموزش STM32 با توابع LL قسمت ششم: GPIO-Input

آموزش STM32 با توابع LL قسمت ششم: GPIO-Input

۸ آبان ۱۳۹۹

در قسمت پنجم از آموزش STM32 با توابع LL، در رابطه با GPIO در حالت خروجی صحبت کردیم و به بررسی جزئیات...

  • 83
  • 9 دقیقه مطالعه
  • 1
5
آموزش STM32 با توابع LL قسمت چهارم: RCC (کنترل ریست و کلاک)
آموزش STM32 با توابع LL قسمت چهارم: RCC (کنترل ریست و کلاک)

آموزش STM32 با توابع LL قسمت چهارم: RCC (کنترل ریست و کلاک)

۱۵ شهریور ۱۳۹۹

در قسمت سوم از آموزش STM32 با توابع LL، یاد گرفتیم که در نرم‌افزار STM32CubeMX چگونه می‌توان یک پروژه ایجاد کرد. همین‌طور در همان قسمت...

  • 95
  • 8 دقیقه مطالعه
  • 1
6
آموزش STM32 با توابع LL قسمت هفتم: Interrupt
آموزش STM32 با توابع LL قسمت هفتم: Interrupt

آموزش STM32 با توابع LL قسمت هفتم: Interrupt

۵ آذر ۱۳۹۹

در قسمت ششم از آموزش STM32 با توابع LL، در رابطه با GPIO در حالت ورودی صحبت کردیم. نحوه‌ی کار به این صورت...

  • 81
  • 10 دقیقه مطالعه
  • 0
7
آموزش STM32 با توابع LL قسمت هشتم: UART-Transmit
آموزش STM32 با توابع LL قسمت هشتم: UART-Transmit

آموزش STM32 با توابع LL قسمت هشتم: UART-Transmit

۱۹ آذر ۱۳۹۹

در قسمت هفتم از آموزش STM32 با توابع LL، ابتدا در رابطه با کلیت و ذات وقفه صحبت کردیم و گفتیم که...

  • 85
  • 8 دقیقه مطالعه
  • 0
8
آموزش STM32 با توابع LL قسمت نهم: UART-Receive
آموزش STM32 با توابع LL قسمت نهم: UART-Receive

آموزش STM32 با توابع LL قسمت نهم: UART-Receive

۱۸ دی ۱۳۹۹

در قسمت هشتم از آموزش STM32 با توابع LL، ابتدا مقدمات پروتکل UART را بررسی کردیم و گفتیم که یک پکت دیتا...

  • 70
  • 7 دقیقه مطالعه
  • 0
9
آموزش STM32 با توابع LL قسمت دهم: مبدل آنالوگ به دیجیتال (ADC)
آموزش STM32 با توابع LL قسمت دهم: مبدل آنالوگ به دیجیتال (ADC)

آموزش STM32 با توابع LL قسمت دهم: مبدل آنالوگ به دیجیتال (ADC)

۶ اسفند ۱۳۹۹

در قسمت نهم از آموزش STM32 با توابع LL، ابتدا چالش بخش Receive یا همان دریافت دیتا در پروتکل UART را بررسی کردیم و...

  • 92
  • 14 دقیقه مطالعه
  • 0
10
آموزش STM32 با توابع LL قسمت یازدهم: مبدل دیجیتال به آنالوگ (DAC)
آموزش STM32 با توابع LL قسمت یازدهم: مبدل دیجیتال به آنالوگ (DAC)

آموزش STM32 با توابع LL قسمت یازدهم: مبدل دیجیتال به آنالوگ (DAC)

۱۶ اسفند ۱۳۹۹

در قسمت دهم از آموزش STM32 با توابع LL، ابتدا ADC را بررسی کردیم و گفتیم که یک ADC چه مشخصه‌ها و...

  • 74
  • 11 دقیقه مطالعه
  • 0
11
آموزش STM32 با توابع LL قسمت دوازدهم: Timer-TimeBase
آموزش STM32 با توابع LL قسمت دوازدهم: Timer-TimeBase

آموزش STM32 با توابع LL قسمت دوازدهم: Timer-TimeBase

۱۹ فروردین ۱۴۰۰

در قسمت یازدهم از آموزش STM32 با توابع LL، در رابطه با DAC صحبت کردیم و ویژگی‌های مهم DAC در میکروکنترلرهای STM32...

  • 80
  • 7 دقیقه مطالعه
  • 0
12
Siavash
Siavash

این دوره را به اشتراک بگذارید

مطالب تصادفی

نمایش همه نوشته ها
سیـــســـوگ

مرجع متن باز آموزش الکترونیک