قبل از هر چیزی باید به این سؤال جواب دهیم که توابع LL در STM32 چه هستند؟ شرکت ST برای راهاندازی و توسعه نرمافزار برای میکروهای خود، ابزارهایی در اختیار کاربران قرار داده است که ازجمله این ابزارها، کتابخانههای LL یا Low Layer هستند. ویژگی بارز این توابع نزدیک بودن به لایهی سختافزار و دسترسی مستقیم به Register های میکروکنترلر است. به همین دلیل استفاده از این توابع به دانش سختافزاری نیاز دارد.درواقع درایورهای LL باهدف ارائه یک لایهی سریع و سبک نزدیک به سختافزار برای کاربران متخصص، طراحیشده است. درایورهای LL شامل بخشها و ویژگیهای زیر میشوند:
نکته قابلتوجه در مورد توابع LL این است که اعمالی که انجام میدهند و سرویسهای ارائه میکنند، دقیقاً انعکاس تواناییهای سختافزاری هستند که در زمان فراخوانی بهصورت یک عملیات one-shot اجرا میشوند. همچنین ازآنجاکه این سرویسها هیچ پروسهای را پیاده نمیکنند، نیازی به حافظه برای ذخیره حالت، شمارنده یا اشارهگر ندارند. همهی کارها با تغییر محتوای رجیستر مربوط به دستگاههای جانبی موردنظر انجام میشوند.در کتابخانههای low layer علاوه بر 5 هدرفایل که مربوط بهویژگیهای سیستم و Cortex هستند، به ازای هر دستگاه جانبی یک هدرفایل و یک فایل C وجود دارد. همچنین قابلذکر است که برای LL فایل Configuration وجود ندارد و فایلهای مربوط به درایورهای LL در پوشه درایورهای HAL قرار دارند.
در همه درایورهای low-layer، تنها فایلی که Include میشود، فایل CMSIS دستگاه موردنظر است.
ابزارهای مورداستفاده در آموزش STM32 با توابع LL
در این سری آموزش، علاوه بر ابزارهای کوچک و یا خاص سختافزاری یا نرمافزاری که برای یک پروژه استفاده میشوند (و در همانجا معرفی خواهند شد)، از یک بورد آموزشی برای میکروکنترلر STM32F103C8T به نام BluePill و در بعضی آموزشها نیز از بورد STM32F103RET (به همراه بردبورد و تجهیزات ازایندست مثل سیم بردبورد و..) استفاده میشود. ابزارهای نرمافزاری موردنیاز هم STM32 Cube MX و Keil uVersion5 هستند. نرمافزار اول که توسط خود شرکت منتشرشده است، برای پیکربندی و راهاندازی پروژه و کد استفاده میشود. نرمافزار Keil نیز یک IDE شناختهشده است که برای توسعه کد پروژه و دیباگ و خطایابی آن کاربرد دارد.