اطلاعات
جلسات
آموزش STM32 با توابع LL
توضیحات
در صفحه اصلی آموزش میکروکنترلرهای STM32، در مورد اهمیت این میکروکنترلرها صحبت کردیم. در این بخش که مربوط به سری آموزش STM32 با توابع LL است، به معرفی این درایورها میپردازیم و سپس وارد بخشهای عملی آموزش خواهیم شد. در مجموعه آموزش STM32 با توابع LL تمام تلاش خود را کردهایم که تمام دستگاههای جانبی (Peripheral) میکروکنترلر STM32F103 را با یک پروژه ابتدایی اما کاربردی پوشش دهیم. امیدواریم که این آموزشها موردتوجه علاقهمندان به الکترونیک و میکروکنترلرها قرار گیرد. برای ادامه راه با سیسوگ همراه باشید.
کتابخانههای Low Layer
قبل از هر چیزی باید به این سؤال جواب دهیم که توابع LL در STM32 چه هستند؟ شرکت ST برای راهاندازی و توسعه نرمافزار برای میکروهای خود، ابزارهایی در اختیار کاربران قرار داده است که ازجمله این ابزارها، کتابخانههای LL یا Low Layer هستند. ویژگی بارز این توابع نزدیک بودن به لایهی سختافزار و دسترسی مستقیم به Register های میکروکنترلر است. به همین دلیل استفاده از این توابع به دانش سختافزاری نیاز دارد.درواقع درایورهای LL باهدف ارائه یک لایهی سریع و سبک نزدیک به سختافزار برای کاربران متخصص، طراحیشده است. درایورهای LL شامل بخشها و ویژگیهای زیر میشوند:
- مجموعهای از توابع برای راهاندازی ویژگیهای اصلی دستگاههای جانبی (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 دستگاه موردنظر است.
ابزارهای مورداستفاده در آموزش STM32 با توابع LL
در این سری آموزش، علاوه بر ابزارهای کوچک و یا خاص سختافزاری یا نرمافزاری که برای یک پروژه استفاده میشوند (و در همانجا معرفی خواهند شد)، از یک بورد آموزشی برای میکروکنترلر STM32F103C8T به نام BluePill و در بعضی آموزشها نیز از بورد STM32F103RET (به همراه بردبورد و تجهیزات ازایندست مثل سیم بردبورد و..) استفاده میشود. ابزارهای نرمافزاری موردنیاز هم STM32 Cube MX و Keil uVersion5 هستند. نرمافزار اول که توسط خود شرکت منتشرشده است، برای پیکربندی و راهاندازی پروژه و کد استفاده میشود. نرمافزار Keil نیز یک IDE شناختهشده است که برای توسعه کد پروژه و دیباگ و خطایابی آن کاربرد دارد.
دیدگاه ها