بسته نرم افزاری STM32WL3x
مشخصات
- نام محصول: بسته نرم افزاری STM32CubeWL3
- سازگاری: میکروکنترلرهای STM32WL3x
- ویژگی های اصلی:
- APIهای لایه پایین (LL) و لایه انتزاعی سخت افزاری (HAL).
- اجزای میان افزار هسته SigfoxTM، FatFS و FreeRTOSTM
- برنامه های کاربردی و تظاهرات
دستورالعمل استفاده از محصول
شروع به کار
برای شروع استفاده از بسته نرم افزاری STM32CubeWL3، مراحل زیر را دنبال کنید:
- بسته نرم افزاری را از سایت رسمی دانلود کنید webسایت
- محیط توسعه لازم را نصب کنید (مانند STM32CubeIDE، EWARM، MDK-ARM).
- رجوع به پیشین شودamples و برنامه های کاربردی ارائه شده برای راهنمایی.
معماری STM32CubeWL3 به پایان رسیدview
بسته نرم افزاری STM32CubeWL3 حول سه سطح اصلی ساخته شده است
- سطح 0: لایه انتزاعی سخت افزار (HAL) و درایورهای BSP.
- سطح 1: برنامه ها، کتابخانه ها و اجزای مبتنی بر پروتکل.
سوالات متداول (سؤالات متداول)
س: ویژگی های اصلی بسته نرم افزاری STM32CubeWL3 چیست؟
پاسخ: ویژگیهای اصلی شامل APIهای لایه پایین و HAL، اجزای میانافزار مانند SigfoxTM، FatFS، هسته FreeRTOSTM، برنامهها و نمایشها است.
مقدمه
STM32Cube یک ابتکار اصلی STMicroelectronics است که با کاهش تلاش، زمان و هزینه توسعه، بهره وری طراح را به طور قابل توجهی بهبود می بخشد. STM32Cube کل مجموعه STM32 را پوشش می دهد.
STM32Cube شامل:
- مجموعه ای از ابزارهای توسعه نرم افزار کاربر پسند برای پوشش توسعه پروژه از زمان تصور تا تحقق، که از جمله می توان به موارد زیر اشاره کرد:
- STM32CubeMX، یک ابزار پیکربندی نرم افزار گرافیکی است که امکان تولید خودکار کد اولیه C را با استفاده از جادوگران گرافیکی فراهم می کند.
- STM32CubeIDE، یک ابزار توسعه همهجانبه با پیکربندی محیطی، تولید کد، کامپایل کد و ویژگیهای اشکالزدایی
- STM32CubeCLT، مجموعه ابزار توسعه خط فرمان همهجانبه با کامپایل کد، برنامهنویسی برد و ویژگیهای اشکالزدایی
- STM32CubeProgrammer (STM32CubeProg)، یک ابزار برنامه نویسی موجود در نسخه های گرافیکی و خط فرمان
- STM32CubeMonitor (STM32CubeMonitor، STM32CubeMonPwr، STM32CubeMonRF، STM32CubeMonUCPD)، ابزار نظارتی قدرتمند برای تنظیم دقیق رفتار و عملکرد برنامه های STM32 در زمان واقعی
- بستههای MCU و MPU STM32Cube، پلتفرمهای نرمافزاری جاسازی شده جامع مخصوص هر سری میکروکنترلر و ریزپردازنده (مانند STM32CubeWL3 برای خط تولید STM32WL3x)، که شامل:
- لایه انتزاعی سخت افزار STM32Cube (HAL) که حداکثر قابلیت حمل را در سراسر مجموعه STM32 تضمین می کند.
- APIهای لایه پایین STM32Cube که بهترین عملکرد و ردپای را با درجه بالایی از کنترل کاربر بر سخت افزار تضمین می کند.
- مجموعه ای ثابت از اجزای میان افزار مانند کرنل FreeRTOS™، FatFS و Sigfox™
- همه ابزارهای نرم افزاری تعبیه شده با مجموعه کامل ابزارهای جانبی و کاربردیamples
- بستههای توسعه STM32Cube، که شامل مؤلفههای نرمافزاری تعبیهشده است که عملکردهای بستههای MCU و MPU STM32Cube را با موارد زیر تکمیل میکند:
-
- پسوندهای میان افزار و لایه های کاربردی
- Exampدر برخی از بردهای توسعه STMicroelectronics خاص اجرا می شود
این کتابچه راهنمای کاربر نحوه شروع کار با بسته STM32CubeWL3 MCU را شرح می دهد.
بخش 2 ویژگی های اصلی STM32CubeWL3 را توضیح می دهد و بخش 3 یک بیش ازview معماری آن و ساختار بسته MCU.
اطلاعات عمومی
STM32CubeWL3 برنامههای نمایشی زیر گیگاهرتز، از جمله باینریهای Sigfox™ را بر روی میکروکنترلرهای خط محصول STM32WL3x مبتنی بر پردازنده Arm® Cortex®‑M0+ اجرا میکند.
میکروکنترلرهای STM32WL3x پیشرفتهترین تجهیزات جانبی رادیویی RF سازگار با فرکانس زیر گیگاهرتز STMicroelectronics را تعبیه کردهاند که برای مصرف انرژی بسیار کم و عملکرد رادیویی عالی، برای طول عمر باتری بینظیر بهینه شده است.
توجه داشته باشید: Arm یک علامت تجاری ثبت شده Arm Limited (یا شرکت های تابعه آن) در ایالات متحده و/یا جاهای دیگر است.
ویژگی های اصلی STM32CubeWL3
- بسته STM32CubeWL3 MCU روی میکروکنترلرهای 32 بیتی STM32 مبتنی بر پردازنده Arm® Cortex®‑M0+ اجرا میشود. در یک بسته واحد، تمام اجزای نرمافزار تعبیهشده عمومی مورد نیاز برای توسعه یک برنامه کاربردی برای میکروکنترلرهای خط محصول STM32WL3x را جمعآوری میکند.
- این بسته شامل API های لایه پایین (LL) و لایه انتزاعی سخت افزار (HAL) است که سخت افزار میکروکنترلر را به همراه مجموعه گسترده ای از exampمواردی که روی بردهای STMicroelectronics اجرا می شوند. API های HAL و LL در مجوز BSD منبع باز برای راحتی کاربر در دسترس هستند. همچنین شامل اجزای میانافزار هسته Sigfox™، FatFS و FreeRTOS™ است.
- بسته STM32CubeWL3 MCU همچنین چندین برنامه کاربردی و نمایشی را ارائه می دهد که تمام اجزای میان افزار خود را پیاده سازی می کند.
- طرح مولفه STM32CubeWL3 MCU Package در شکل 1 نشان داده شده است.
شکل 1. اجزای بسته STM32CubeWL3 MCU
معماری STM32CubeWL3 به پایان رسیده استview
راه حل STM32CubeWL3 MCU Package حول سه سطح مستقل ساخته شده است که به راحتی همانطور که در شکل 2 توضیح داده شده است، تعامل دارند. سطح 0
این سطح به سه زیر لایه تقسیم می شود:
- بسته پشتیبانی هیئت مدیره (BSP).
- لایه انتزاعی سخت افزار (HAL):
- درایورهای جانبی HAL
- درایورهای لایه پایین
- استفاده اولیه از لوازم جانبیamples
بسته پشتیبانی هیئت مدیره (BSP)
این لایه مجموعه ای از APIها را نسبت به اجزای سخت افزاری در بردهای سخت افزاری (مانند LED ها، دکمه ها و درایورهای COM) ارائه می دهد. از دو بخش تشکیل شده است:
- جزء:
این درایور مربوط به دستگاه خارجی روی برد است و نه STM32. درایور کامپوننت API های خاصی را برای اجزای خارجی درایور BSP ارائه می کند و می تواند روی هر برد دیگری قابل حمل باشد. - درایور BSP:
این اجازه می دهد تا درایورهای مؤلفه را به یک برد خاص پیوند دهید و مجموعه ای از API های کاربر پسند را ارائه می دهد. قانون نامگذاری API BSP_FUNCT_Action () است.
Example: BSP_LED_Init()، BSP_LED_On()
BSP بر اساس یک معماری ماژولار است که امکان انتقال آسان روی هر سخت افزاری را تنها با اجرای روال های سطح پایین فراهم می کند.
لایه انتزاعی سخت افزاری (HAL) و لایه پایین (LL)
STM32CubeWL3 HAL و LL مکمل یکدیگر هستند و طیف گسترده ای از نیازهای کاربردی را پوشش می دهند:
- درایورهای HAL APIهای بسیار قابل حمل عملکرد محور را ارائه می دهند. آنها MCU و پیچیدگی محیطی را برای کاربر نهایی پنهان می کنند.
درایورهای HAL APIهای ویژگی گرا چند نمونه ای عمومی را ارائه می دهند که اجرای برنامه کاربر را با ارائه فرآیندهای آماده برای استفاده ساده می کند. برای مثالampبرای تجهیزات جانبی ارتباطی (I2C، UART و دیگران)، APIهایی را فراهم می کند که امکان تنظیم اولیه و پیکربندی ابزار جانبی، مدیریت انتقال داده بر اساس نظرسنجی، وقفه یا فرآیند DMA و مدیریت خطاهای ارتباطی که ممکن است در حین ارتباط ایجاد شود را فراهم می کند. API های درایور HAL به دو دسته تقسیم می شوند:
- APIهای عمومی، که عملکردهای مشترک و عمومی را برای همه میکروکنترلرهای سری STM32 ارائه می کنند.
- API های برنامه افزودنی، که عملکردهای خاص و سفارشی شده ای را برای یک خانواده خاص یا یک شماره قطعه خاص ارائه می کنند.
- API های لایه پایین، API های سطح پایین را در سطح ثبت، با بهینه سازی بهتر اما قابلیت حمل کمتر ارائه می دهند. آنها به دانش عمیق MCU و مشخصات جانبی نیاز دارند.
درایورهای LL طوری طراحی شده اند که یک لایه متخصص گرا و سبک وزن را ارائه دهند که نسبت به HAL به سخت افزار نزدیک تر است. برخلاف HAL، API های LL برای وسایل جانبی که در آن دسترسی بهینه یک ویژگی کلیدی نیست، یا برای آنهایی که به پیکربندی نرم افزار سنگین یا پشته پیچیده سطح بالایی نیاز دارند، ارائه نشده است.
ویژگی درایورهای LL:
- مجموعه ای از توابع برای مقداردهی اولیه ویژگی های اصلی محیطی با توجه به پارامترهای مشخص شده در ساختارهای داده.
- مجموعه ای از توابع برای پر کردن ساختارهای داده اولیه با مقادیر بازنشانی مربوط به هر فیلد.
- تابعی برای حذف اولیه محیطی (رجیسترهای محیطی به مقادیر پیش فرض خود بازیابی می شوند).
- مجموعه ای از توابع درون خطی برای دسترسی مستقیم و ثبت اتمی.
- استقلال کامل از HAL و قابلیت استفاده در حالت مستقل (بدون درایورهای HAL).
- پوشش کامل ویژگی های جانبی پشتیبانی شده
استفاده اولیه از لوازم جانبیamples
این لایه لایه سابق را در بر می گیردampدستگاههای جانبی STM32 تنها با استفاده از منابع HAL و BSP ساخته شدهاند.
تظاهرات سابقamples نیز در دسترس هستند برای نشان دادن سابق پیچیده ترampسناریوهایی با تجهیزات جانبی خاص، مانند MRSUBG و LPAWUR.
سطح 1
این سطح به دو زیر لایه تقسیم می شود:
- اجزای میان افزار
- Examples بر اساس اجزای میان افزار
اجزای میان افزار
میان افزار مجموعه ای از کتابخانه ها است که هسته FreeRTOS، FatFS و کتابخانه پروتکل Sigfox™ را پوشش می دهد. تعامل افقی بین اجزای این لایه با فراخوانی API های مشخص شده انجام می شود.
تعامل عمودی با درایورهای لایه پایین از طریق تماس های خاص و ماکروهای ثابت پیاده سازی شده در رابط فراخوانی سیستم کتابخانه انجام می شود.
ویژگی های اصلی هر جزء میان افزار به شرح زیر است:
- هسته FreeRTOS™: یک سیستم عامل بلادرنگ (RTOS) را پیاده سازی می کند که برای سیستم های تعبیه شده طراحی شده است.
- Sigfox™: کتابخانه پروتکل Sigfox™ مطابق با شبکه پروتکل Sigfox™ را پیاده سازی می کند و شامل کتابخانه پروتکل تست RF برای آزمایش در برابر ابزارهای RF Sigfox™ است.
- FatFS: FAT عمومی را پیاده سازی می کند file ماژول سیستم
Examples بر اساس اجزای میان افزار
هر جزء میان افزاری با یک یا چند نسخه قبلی ارائه می شودamples که برنامهها نیز نامیده میشوند، نحوه استفاده از آن را نشان میدهند. ادغام سابقampمواردی که از چندین مؤلفه میانافزار استفاده میکنند نیز ارائه شدهاند.
بسته سیستم عامل STM32CubeWL3 به پایان رسیدview
دستگاه ها و سخت افزار STM32WL3x پشتیبانی می شود
STM32Cube یک لایه انتزاعی سخت افزاری بسیار قابل حمل (HAL) ارائه می دهد که حول یک معماری عمومی ساخته شده است. این اجازه می دهد تا اصل لایه های ایجاد شده، مانند استفاده از لایه میان افزار برای پیاده سازی توابع خود بدون دانستن عمیق، چه MCU استفاده می شود. این کار قابلیت استفاده مجدد کد کتابخانه را بهبود می بخشد و قابلیت حمل آسان به دستگاه های دیگر را تضمین می کند.
- علاوه بر این، STM32CubeWL3 با معماری لایهای خود، پشتیبانی کاملی از تمام خط تولید STM32WL3x ارائه میکند.
- کاربر فقط باید ماکرو درست را در stm32wl3x.h تعریف کند.
جدول 1 بسته به دستگاه خط محصول STM32WL3x مورد استفاده، ماکرو تعریف شده را نشان می دهد. این ماکرو نیز باید در پیش پردازنده کامپایلر تعریف شود.
جدول 1. ماکروها برای خط تولید STM32WL3x
ماکرو تعریف شده در stm32wl3x.h | دستگاه های خط تولید STM32WL3x |
stm32wl33 | میکروکنترلرهای STM32WL33xx |
STM32CubeWL3 دارای مجموعه ای غنی از نمونه های قبلی استamples و برنامه های کاربردی در همه سطوح، درک و استفاده از هر درایور HAL یا اجزای میان افزاری را آسان می کند. این سابقampبر روی بردهای STMicroelectronics فهرست شده در جدول 2 اجرا می شود.
هیئت مدیره | دستگاه های پشتیبانی شده از برد STM32WL3x |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
بسته STM32CubeWL3 MCU می تواند بر روی هر سخت افزار سازگار اجرا شود. کاربران به سادگی درایورهای BSP را به روز می کنند تا نمونه قبلی ارائه شده را پورت کنندampاگر اینها دارای ویژگی های سخت افزاری یکسانی باشند (مانند LED یا دکمه ها).
بسته نرم افزاری تمام شدview
راه حل بسته STM32CubeWL3 MCU در یک بسته زیپ با ساختار نشان داده شده در شکل 3 ارائه شده است.
شکل 3. ساختار بسته سیستم عامل STM32CubeWL3
احتیاط:
کاربر نباید اجزا را تغییر دهد fileس کاربر فقط می تواند منابع \Projects را ویرایش کند.
برای هر تخته، مجموعه ای از سابقamples با پروژه های از پیش پیکربندی شده برای زنجیره های ابزار EWARM، MDK-ARM و STM32CubeIDE ارائه شده است.
شکل 4 ساختار پروژه را برای بردهای NUCLEO-WL33CCx نشان می دهد.
سابقamples بسته به سطح STM32CubeWL3 که آنها اعمال می شود طبقه بندی می شوند. نام آنها به شرح زیر است:
- سطح 0 سابقamples را Ex می نامندampلس، مثالamples_LL و Examples_MIX. آنها به ترتیب از درایورهای HAL، درایورهای LL و ترکیبی از درایورهای HAL و LL بدون هیچ جزء میان افزاری استفاده می کنند. تظاهرات سابقamples نیز موجود است.
- سطح 1 سابقamples برنامه ها نامیده می شوند. آنها موارد استفاده معمولی از هر جزء میان افزار را ارائه می دهند.
هر برنامه سفتافزاری برای یک برد مشخص میتواند به سرعت با استفاده از پروژههای قالب موجود در فهرستهای Templ ates و Templates_LL ساخته شود.
Exampلس، مثالamples_LL و Examples_MIX ساختار یکسانی دارد:
- پوشه \Inc حاوی تمام هدر است files.
- پوشه \Src حاوی کد منبع.
- پوشه های \EWARM، \MDK-ARM، و \STM32CubeIDE حاوی پروژه از پیش پیکربندی شده برای هر زنجیره ابزار هستند.
- readme.md و readme.html موارد قبلی را توصیف می کنندampرفتار و محیط مورد نیاز برای انجام آن.
شروع کار با STM32CubeWL3
اجرای اولین سابقample
این بخش توضیح می دهد که اجرای اولین سابق چقدر ساده استampدر STM32CubeWL3. به عنوان نمونه از تولید یک ضامن LED ساده که روی برد NUCLEO-WL33CC1 اجرا می شود، استفاده می کند:
- بسته STM32CubeWL3 MCU را دانلود کنید.
- آن را از حالت فشرده خارج کنید یا نصب کننده را در صورت ارائه، در دایرکتوری مورد نظر خود اجرا کنید.
- مطمئن شوید که ساختار بسته نشان داده شده در شکل 3 را تغییر ندهید. ساختار بسته سفت افزار STM32CubeWL3. توجه داشته باشید که توصیه می شود بسته را در مکانی نزدیک به حجم ریشه (به معنی C:\ST یا G:\Tests) کپی کنید، زیرا برخی از IDE ها زمانی که مسیر خیلی طولانی است با مشکل مواجه می شوند.
نحوه اجرای HAL example
قبل از بارگیری و اجرای یک سابقampاکیداً توصیه میشود که قسمت قبلی را بخوانیدample readme file برای هر پیکربندی خاص
- به \Projects\NUCLEO-WL33CC\Ex برویدamples
- پوشه \GPIO و سپس \GPIO_EXTI را باز کنید.
- پروژه را با زنجیره ابزار ترجیحی باز کنید. یک پایان سریعview در مورد نحوه باز کردن، ساخت و اجرای یک سابقample با زنجیره ابزار پشتیبانی شده در زیر آورده شده است.
- همه را بازسازی کنید files و تصویر را در حافظه هدف بارگذاری کنید.
- سابق را اجرا کنیدampله برای جزئیات بیشتر به قسمت قبلی مراجعه کنیدample readme file.
برای باز کردن، ساختن و اجرای یک سابقampبا هر یک از زنجیره های ابزار پشتیبانی شده، مراحل زیر را دنبال کنید:
- EWARM:
- تحت عنوان سابقampپوشه les، زیرپوشه \EWARM را باز کنید.
- فضای کاری Project.eww را راه اندازی کنید (نام فضای کاری ممکن است از یک قبلی تغییر کندampبه دیگری).
- همه را بازسازی کنید files: [پروژه]> [بازسازی همه].
- بارگذاری تصویر پروژه: [پروژه]>[اشکالزدایی].
- برنامه را اجرا کنید: [Debug]>[Go (F5)].
- MDK-ARM:
- تحت عنوان سابقampپوشه les، زیرپوشه \MDK-ARM را باز کنید.
- فضای کاری Project.uvproj را باز کنید (نام فضای کاری ممکن است از یک قبلی تغییر کندampبه دیگری).
- همه را بازسازی کنید files: [Project]>[Rebuild all target files].
- تصویر پروژه را بارگیری کنید: [اشکالزدایی]>[شروع/توقف جلسه اشکالزدایی].
- برنامه را اجرا کنید: [Debug]>[Run (F5)].
- STM32CubeIDE:
- زنجیره ابزار STM32CubeIDE را باز کنید.
- روی [File]>[Switch Workspace]>[Other] و به فهرست راهنمای فضای کاری STM32CubeIDE بروید.
- روی [File]>[Import]، [General]>[Existing Projects into Workspace] را انتخاب کنید و سپس روی [Next] کلیک کنید.
- به فهرست فضای کاری STM32CubeIDE بروید و پروژه را انتخاب کنید.
- بازسازی تمام پروژه files: پروژه را در پنجره Project Explorer انتخاب کنید سپس بر روی آن کلیک کنید
منوی [پروژه]> [ساخت پروژه]. - برنامه را اجرا کنید: [Run]>[Debug (F11)].
توسعه یک اپلیکیشن سفارشی
استفاده از STM32CubeMX برای توسعه یا به روز رسانی یک برنامه
در بسته STM32Cube MCU، تقریباً تمام پروژه های قبلیamples با ابزار STM32CubeMX برای مقداردهی اولیه سیستم، تجهیزات جانبی و میان افزار تولید می شوند.
استفاده مستقیم از یک پروژه موجودampاز ابزار STM32CubeMX به STM32CubeMX 6.12.0 یا بالاتر نیاز دارد:
- پس از نصب STM32CubeMX، پروژه پیشنهادی را باز کرده و در صورت لزوم به روز رسانی کنید.
ساده ترین راه برای باز کردن یک پروژه موجود، دوبار کلیک کردن بر روی *.ioc است file به طوری که STM32CubeMX به طور خودکار پروژه و منبع آن را باز می کند fileس STM32CubeMX کد منبع اولیه چنین پروژه هایی را تولید می کند. - کد منبع اصلی برنامه توسط نظرات "USER CODE BEGIN" و "USER CODE END" موجود است. اگر انتخاب و تنظیمات محیطی اصلاح شود، STM32CubeMX بخش اولیه کد را به روز می کند و در عین حال کد منبع اصلی برنامه را حفظ می کند.
برای توسعه یک پروژه سفارشی با STM32CubeMX، مراحل گام به گام را دنبال کنید:
- تمام نرم افزارهای تعبیه شده مورد نیاز را با استفاده از یک حل کننده تضاد پینوت، یک راهنما تنظیم درخت ساعت، یک ماشین حساب مصرف برق و ابزاری که پیکربندی محیطی MCU را انجام می دهد (مانند GPIO یا USART) پیکربندی کنید.
- کد اولیه C را بر اساس پیکربندی انتخاب شده ایجاد کنید. این کد برای استفاده در چندین محیط توسعه آماده است. کد کاربر در نسل بعدی کد نگهداری می شود.
برای اطلاعات بیشتر در مورد STM32CubeMX، به راهنمای کاربر STM32CubeMX برای پیکربندی STM32 و تولید کد C اولیه (UM1718) مراجعه کنید.
برنامه های درایور
برنامه HAL
این بخش مراحل مورد نیاز برای ایجاد یک برنامه HAL سفارشی با استفاده از STM32CubeWL3 را شرح می دهد:
- یک پروژه ایجاد کنید
برای ایجاد یک پروژه جدید، یا از پروژه Template ارائه شده برای هر تابلو در زیر \Projects\< STM32xxx_yyy>\Templates یا از هر پروژه موجود در \Projects\ شروع کنید. \ پیشینampl es یا \Projects\ \ برنامه های کاربردی (که در آن به نام هیئت اشاره دارد). پروژه Template یک تابع حلقه اصلی خالی را ارائه می دهد. با این حال، نقطه شروع خوبی برای درک تنظیمات پروژه STM32CubeWL32 است. این قالب دارای ویژگی های زیر است:- این شامل کد منبع HAL، درایورهای CMSIS و BSP است که حداقل مجموعه ای از اجزای مورد نیاز برای توسعه یک کد در یک برد مشخص است.
- این شامل مسیرهای گنجانده شده برای تمام اجزای سیستم عامل است.
- دستگاه های خط تولید STM32WL3x پشتیبانی شده را تعریف می کند و به درایورهای CMSIS و HAL اجازه می دهد به درستی پیکربندی شوند.
- کاربر آماده برای استفاده را فراهم می کند files مطابق شکل زیر از قبل پیکربندی شده است:
- HAL با پایه زمانی پیشفرض با هسته Arm® SysTick راهاندازی شد.
- SysTick ISR برای هدف HAL_Delay() پیاده سازی شد.
توجه: هنگام کپی کردن یک پروژه موجود در مکان دیگری، مطمئن شوید که تمام مسیرهای ارائه شده به روز شده باشند.
- اجزای سیستم عامل را پیکربندی کنید
اجزای HAL و میانافزار مجموعهای از گزینههای پیکربندی زمان ساخت را با استفاده از ماکروهای تعریف شده #define در یک هدر ارائه میکنند. file. یک پیکربندی قالب file در داخل هر کامپوننت ارائه می شود که باید در پوشه پروژه (معمولاً پیکربندی) کپی شود file xxx_conf_template.h نام دارد، قطعه _template باید هنگام کپی کردن آن در پوشه پروژه حذف شود. پیکربندی file اطلاعات کافی برای درک تأثیر هر گزینه پیکربندی ارائه می دهد. اطلاعات دقیق تر در اسناد ارائه شده برای هر جزء موجود است. - کتابخانه HAL را راه اندازی کنید
پس از پرش به برنامه اصلی، کد برنامه باید API ()HAL_Init را فراخوانی کند تا کتابخانه HAL را مقداردهی کند، که وظایف زیر را انجام می دهد:- پیکربندی پیش واکشی حافظه فلش و اولویت وقفه SysTick (از طریق ماکروهای تعریف شده در stm3 2wl3x_hal_conf.h).
- پیکربندی SysTick برای ایجاد یک وقفه در هر میلی ثانیه در اولویت وقفه SysTick TICK_INT_PRIO تعریف شده در stm32wl3x_hal_conf.h.
- تنظیم اولویت گروه NVIC روی 0.
- فراخوانی تابع callback()HAL_MspInit که در کاربر stm32wl3x_hal_msp.c تعریف شده است. file برای انجام اولیه سازی های سخت افزاری سطح پایین جهانی.
- ساعت سیستم را پیکربندی کنید
پیکربندی ساعت سیستم با فراخوانی دو API توضیح داده شده در زیر انجام می شود:- HAL_RCC_OscConfig(): این API اسیلاتورهای داخلی و خارجی را پیکربندی می کند. کاربر انتخاب می کند که یک یا همه نوسانگرها را پیکربندی کند.
- HAL_RCC_ClockConfig(): این API منبع ساعت سیستم، تأخیر حافظه فلش و پیش مقیاسکنندههای AHB و APB را پیکربندی میکند.
- دستگاه جانبی را راه اندازی کنید
- ابتدا تابع مقداردهی اولیه محیطی را بنویسید. به صورت زیر عمل کنید:
- ساعت جانبی را فعال کنید.
- GPIO های جانبی را پیکربندی کنید.
- کانال DMA را پیکربندی کنید و وقفه DMA را فعال کنید (در صورت نیاز).
- وقفه محیطی را فعال کنید (در صورت نیاز).
- stm32xxx_it.c را ویرایش کنید تا در صورت نیاز، کنترل کننده های وقفه مورد نیاز (محیطی و DMA) را فراخوانی کنید.
- اگر قرار است از یک وقفه محیطی یا DMA استفاده شود، توابع پاسخ به تماس کامل فرآیند را بنویسید.
- در کاربر main.c file، ساختار دسته محیطی را مقداردهی اولیه کنید و سپس تابع اولیه سازی محیطی را برای مقداردهی اولیه دستگاه فراخوانی کنید.
- یک برنامه کاربردی توسعه دهید
در این سtage، سیستم آماده است و توسعه کد برنامه کاربر می تواند شروع شود.
HAL APIهای بصری و آماده برای پیکربندی ابزار جانبی را فراهم می کند. از نظرسنجی، وقفه ها و یک مدل برنامه نویسی DMA پشتیبانی می کند تا هر گونه نیاز برنامه را برآورده کند. برای جزئیات بیشتر در مورد نحوه استفاده از هر دستگاه جانبی، به rich ex مراجعه کنیدampمجموعه ای که در بسته STM32CubeWL3 MCU ارائه شده است.
احتیاط:
در اجرای پیشفرض HAL، تایمر SysTick به عنوان یک پایگاه زمانی استفاده میشود: وقفههایی را در فواصل زمانی منظم ایجاد میکند. اگر HAL_Delay() از فرآیند ISR محیطی فراخوانی شود، مطمئن شوید که وقفه SysTick اولویت بالاتری (از لحاظ عددی کمتر) نسبت به وقفه محیطی دارد. در غیر این صورت، فرآیند ISR تماس گیرنده است
مسدود شده است. توابع مؤثر بر پیکربندی های پایگاه زمانی به عنوان __ضعیف اعلام می شوند تا در صورت پیاده سازی های دیگر در کاربر، لغو امکان پذیر شود. file (به عنوان مثال با استفاده از یک تایمر همه منظورهample، یا منبع زمانی دیگری).
برای جزئیات بیشتر، به HAL_TimeBase سابق مراجعه کنیدampله
برنامه LL
این بخش مراحل مورد نیاز برای ایجاد یک برنامه LL سفارشی با استفاده از STM32CubeWL3 را شرح می دهد.
- یک پروژه ایجاد کنید
برای ایجاد یک پروژه جدید، یا از پروژه Templates_LL ارائه شده برای هر تابلو در زیر \Projects\ شروع کنید. \Templates_LL یا از هر پروژه موجود در \Projects\ \E xamples_LL ( به نام برد مانند NUCLEO-WL32CC33 اشاره دارد.
پروژه الگو یک تابع حلقه اصلی خالی را ارائه می دهد که نقطه شروع خوبی برای درک تنظیمات پروژه برای STM32CubeWL3 است. ویژگی های اصلی قالب به شرح زیر است:- این شامل کدهای منبع درایورهای LL و CMSIS است که حداقل مجموعه ای از اجزای مورد نیاز برای توسعه کد در یک برد مشخص است.
- این شامل مسیرهای گنجانده شده برای تمام اجزای سیستم عامل مورد نیاز است.
- دستگاه خط تولید STM32WL3x پشتیبانی شده را انتخاب می کند و امکان پیکربندی صحیح درایورهای CMSIS و LL را فراهم می کند.
- کاربر آماده برای استفاده را فراهم می کند files هایی که به صورت زیر از قبل پیکربندی شده اند:
- main.h: لایه انتزاعی تعریف LED و USER_BUTTON.
- main.c: پیکربندی ساعت سیستم برای حداکثر فرکانس.
- پورت LL سابقampدر:
- پوشه Templates_LL را کپی/پیست کنید - برای حفظ منبع اولیه - یا مستقیماً یک پروژه Templa tes_LL موجود را به روز کنید.
- سپس، انتقال اساساً شامل جایگزینی Templates_LL است files توسط Exampپروژه هدفمند les_LL.
- تمام قسمت های خاص تخته را نگه دارید. به دلایل شفافیت، قسمتهای خاص برد با علامتهای خاص مشخص میشوند tags:
بنابراین، مراحل اصلی انتقال به شرح زیر است:
- stm32wl3x_it.h را جایگزین کنید file.
- stm32wl3x_it.c را جایگزین کنید file.
- main.h را جایگزین کنید file و آن را به روز کنید: LED و تعریف دکمه کاربر الگوی LL را در زیر BOARD SPECIFIC CONFIGURATION نگه دارید tags.
- main.c را جایگزین کنید file و آن را به روز کنید:
- پیکربندی ساعت تابع قالب SystemClock_Config() LL را در BOARD SPECIFIC CONFIGURATION نگه دارید tags.
- بسته به تعریف LED، هر رخداد LDx را با LDy دیگری که در آن موجود است جایگزین کنید file main.h.
با این تغییرات، سابقample اجرا می شود در هیئت مدیره هدف.
برنامه های کاربردی RF، نمایش ها و موارد قبلیamples
انواع مختلف برنامه های کاربردی RF، نمایش ها و موارد مشابهamples در بسته STM32CubeWL3 موجود است. آنها در دو بخش زیر فهرست شده اند.
زیر گیگاهرتز سابقampتظاهرات و تظاهرات
این سابقamples ویژگی های اصلی لوازم جانبی رادیویی MRSUBG و LPAWUR را نشان می دهد. این سابقampموارد زیر در دسترس هستند:
- پروژه ها\NUCLEO-WL33CC\Examples\MRSUBG
- پروژه ها\NUCLEO-WL33CC\Examples\LPAWUR
- پروژهها\NUCLEO-WL33CC\Demonstrations\MRSUBG
- پروژهها\NUCLEO-WL33CC\Demonstrations\LPAWUR
هر سابقample یا نمایش به طور کلی شامل دو برنامه به نامهای Tx و Rx است که به ترتیب به عنوان فرستنده و گیرنده عمل میکنند:
- Examples/MRSUBG
- MRSUBG_802_15_4: پیاده سازی لایه فیزیکی تعریف شده توسط استاندارد 802.15.4. این نشان می دهد که چگونه رادیو را برای ارسال یا دریافت بسته های 802.15.4 پیکربندی کنید.
- MRSUBG_BasicGeneric: تبادل بسته های پایه STM32WL3x MR_SUBG.
- MRSUBG_Chat: یک برنامه ساده که نحوه استفاده از Tx و Rx را در یک دستگاه نشان می دهد.
- MRSUBG_DatabufferHandler: سابقample که نحوه تعویض از Databuffer 0 و 1 را نشان می دهد.
- MRSUBG_Sequencer AutoAck: سابقampکه تأییدیه های بسته (ACK) را به طور خودکار ارسال و دریافت می کند.
- MRSUBG_WMBusSTD: تبادل پیام های WM-Bus.
- WakeupRadio: سابقampبرای تست تجهیزات جانبی رادیویی LPAWUR.
- تظاهرات/MRSUBG
- MRSUBG_RTC_Button_TX: این حالت قبلیample نشان می دهد که چگونه SoC را در حالت توقف عمیق تنظیم کنید و MRSUBG را برای بیدار کردن SoC با فشار دادن PB2 برای ارسال یک فریم یا پس از انقضای تایمر RTC پیکربندی کنید.
- MRSUBG_Sequencer_Sniff: این سابقample نشان می دهد که چگونه می توان ترتیب سنج MRSUBG را در حالت sniff تنظیم کرد. این سابقample سمت گیرنده را نشان می دهد و به دستگاه دیگری به عنوان فرستنده نیاز دارد.
- MRSUBG_Timer: برنامه چندین نمونه از تایمر MRSUBG (با بارگذاری خودکار) را با فواصل زمانی مختلف برنامه ریزی می کند.
- MRSUBG_WakeupRadio_Tx: این سابقample توضیح می دهد که چگونه SoC را در حالت توقف عمیق تنظیم کنید و MRSUBG را برای بیدار کردن SoC با فشار دادن PB2 برای ارسال یک فریم پیکربندی کنید. این سابقample سمت فرستنده را نشان می دهد و به دستگاه دیگری به عنوان گیرنده LPAWUR نیاز دارد. گیرنده سابقample در پوشه NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx قرار دارد.
- تظاهرات/LPAWUR
- LPAWUR_WakeupRadio_Rx: این حالت قبلیample توضیح می دهد که چگونه SoC را در حالت توقف عمیق تنظیم کنید و LPAWUR را برای بیدار کردن SoC هنگامی که یک فریم می رسد و به درستی دریافت می شود پیکربندی کنید. این سابقample سمت گیرنده را نشان می دهد و به دستگاه دیگری به عنوان فرستنده نیاز دارد. فرستنده سابقample در پوشه NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx قرار دارد.
برنامه Sigfox™
این برنامهها نحوه پیادهسازی یک سناریوی Sigfox™ و استفاده از APIهای Sigfox™ موجود را نشان میدهند. آنها در مسیر پروژه Projects\NUCLEO-WL33CC\Applications\Sigfox\ در دسترس هستند:
- Sigfox_CLI: این برنامه نحوه استفاده از یک رابط خط فرمان (CLI) را برای ارسال دستوراتی که از پروتکل Sigfox™ برای ارسال پیام و انجام آزمایشهای تاییدیه استفاده میکنند، نشان میدهد.
- Sigfox_PushButton: این برنامه امکان ارزیابی قابلیت های رادیویی دستگاه STM32WL33xx Sigfox™ را فراهم می کند. با فشار دادن PB1 یک فریم Sigfox™ آزمایشی ارسال می شود.
سوالات متداول
- چه زمانی باید از HAL به جای درایورهای LL استفاده کنم؟
درایورهای HAL APIهای سطح بالا و عملکرد محور را با سطح بالایی از قابلیت حمل ارائه می دهند. پیچیدگی محصول یا محیطی برای کاربران نهایی پنهان است.
درایورهای LL APIهای سطح ثبت لایه پایین را با بهینه سازی بهتر اما قابل حمل کمتر ارائه می دهند. آنها نیاز به دانش عمیق محصول یا مشخصات IP دارند. - آیا می توان از درایورهای HAL و LL با هم استفاده کرد؟ اگر بله، چه محدودیت هایی وجود دارد؟
امکان استفاده از هر دو درایور HAL و LL وجود دارد. از HAL برای مرحله اولیه سازی محیطی استفاده کنید و سپس عملیات I/O را با درایورهای LL مدیریت کنید.
تفاوت عمده بین HAL و LL این است که درایورهای HAL نیاز به ایجاد و استفاده از دستگیرهها برای مدیریت عملیات دارند در حالی که درایورهای LL مستقیماً روی ثباتهای جانبی کار میکنند. مخلوط کردن HAL و LL در مثال نشان داده شده استamples_MIX سابقamples - APIهای اولیه سازی LL چگونه فعال می شوند؟
تعریف APIهای اولیه سازی LL و منابع مرتبط (ساختارها، لفظ ها و نمونه های اولیه) توسط سوئیچ کامپایل USE_FULL_LL_DRIVER مشروط می شود.
برای اینکه بتوانید از APIهای اولیه سازی LL استفاده کنید، این سوئیچ را در پیش پردازنده کامپایلر زنجیره ابزار اضافه کنید. - آیا پروژه قالبی برای MRSUBG/LPAWUR محیطی سابق وجود دارد؟amples
برای ایجاد یک MRSUBG یا LPAWUR سابقampپروژه، یا از پروژه اسکلت ارائه شده تحت \Pr Ojects\NUCLEO-WL33CC\Ex شروع کنیدamples\MRSUBG یا \Projects\NUCLEO-WL33CC\Examples\LPAWUR یا از هر پروژه موجود تحت همین دایرکتوری ها. - STM32CubeMX چگونه می تواند بر اساس نرم افزار تعبیه شده کد تولید کند؟
STM32CubeMX دارای دانش داخلی میکروکنترلرهای STM32، از جمله ابزارهای جانبی و نرم افزار آنها است که به آن اجازه می دهد یک نمایش گرافیکی به کاربر ارائه دهد و *.h یا *.c ایجاد کند. files بر اساس پیکربندی کاربر است.
تاریخچه تجدید نظر
جدول 3. تاریخچه بازنگری سند
تاریخ | تجدید نظر | تغییرات |
29-مارس-2024 | 1 | انتشار اولیه |
30 اکتبر 2024 | 2 | ادغام کامل از STM32CubeWL3 in STM32Cube. به روز شده:
حذف شد:
|
اسناد / منابع
![]() |
بسته نرم افزاری ST STM32WL3x [pdfدستورالعملها بسته نرم افزار STM32WL3x، STM32WL3x، بسته نرم افزار، بسته |