میکروکنترلرهای STM32WL3x
دستورالعمل استفاده از محصول
- بسته STM32CubeWL3 شامل APIهای لایه پایین (LL) و لایه انتزاعی سخت افزاری (HAL) است که سخت افزار میکروکنترلر را پوشش می دهد.
- همچنین اجزای میان افزاری مانند SigfoxTM، FatFS و هسته FreeRTOS را فراهم می کند.
- بسته همراه با سابق استamples و برنامه های کاربردی برای پیاده سازی آسان.
- معماری STM32CubeWL3 در سه سطح ساخته شده است: برنامه ها، HAL و LL.
- API های HAL و LL طیف گسترده ای از نیازهای برنامه را پوشش می دهند.
- HAL استفاده اولیه از لوازم جانبی را ارائه می دهدamples، و LL روال های سطح پایین را فراهم می کند.
- این سطح شامل بسته پشتیبانی هیئت مدیره (BSP) و زیرلایه های HAL است.
- BSP APIهایی را برای قطعات سخت افزاری روی بردها ارائه می دهد، در حالی که HAL استفاده اولیه از لوازم جانبی را ارائه می دهد.amples
- درایورهای BSP درایورهای کامپوننت را به بردهای خاصی متصل می کنند و پورت کردن آن را به سخت افزارهای دیگر آسان می کنند.
- STM32CubeWL3 HAL و LL مکمل هم هستند و طیف وسیعی از نیازهای کاربردی را پوشش می دهند.
- کاربران می توانند از این API ها برای تعامل موثر با سخت افزار میکروکنترلر استفاده کنند.
مقدمه
STM32Cube یک ابتکار اصلی STMicroelectronics است که با کاهش تلاش، زمان و هزینه توسعه، بهره وری طراح را به طور قابل توجهی بهبود می بخشد. STM32Cube کل مجموعه STM32 را پوشش می دهد. STM32Cube شامل:
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 نشان داده شده است.
معماری 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 |
stm32wl3x | میکروکنترلرهای STM32WL30xx میکروکنترلرهای STM32WL31xx میکروکنترلرهای STM32WL33xx |
جدول 2. تابلوهای خط تولید STM32WL3x
هیئت مدیره | دستگاه های پشتیبانی شده از برد STM32WL3x |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
بسته STM32CubeWL3 MCU می تواند بر روی هر سخت افزار سازگار اجرا شود. کاربران درایورهای BSP را برای پورت کردن درایورهای قبلی ارائه شده به روز می کنندampاگر اینها دارای ویژگی های سخت افزاری یکسانی باشند (مانند LED یا دکمه ها).
بسته نرم افزاری تمام شدview
- راه حل STM32CubeWL3 MCU Package در یک بسته زیپ با ساختار نشان داده شده در شکل 3 ارائه شده است.
احتیاط: کاربر نباید اجزا را تغییر دهد 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 برنامه ها نامیده می شوند. آنها موارد استفاده معمولی از هر جزء میان افزار را ارائه می دهند.
هر برنامه سفتافزاری برای یک برد مشخص میتواند به سرعت با استفاده از پروژههای قالب موجود در فهرستهای Templates و 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 انتخاب کنید سپس روی منوی [Project]>[Build project] کلیک کنید.
- برنامه را اجرا کنید: [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\ شروع کنید. \ الگوها یا از هر پروژه موجود در \Projects\ \ پیشینamples یا \Proj ects\ \ برنامه های کاربردی (که در آن به نام هیئت اشاره دارد).
پروژه Template یک تابع حلقه اصلی خالی را ارائه می دهد. با این حال، نقطه شروع خوبی برای درک تنظیمات پروژه STM32CubeWL3 است. این قالب دارای ویژگی های زیر است:- این شامل کد منبع HAL، درایورهای CMSIS و BSP است که حداقل مجموعه ای از اجزای مورد نیاز برای توسعه یک کد در یک برد مشخص است.
- این شامل مسیرهای گنجانده شده برای تمام اجزای سیستم عامل است.
- دستگاه های خط تولید STM32WL3x پشتیبانی شده را تعریف می کند و به درایورهای CMSIS و HAL اجازه می دهد به درستی پیکربندی شوند.
- کاربر آماده برای استفاده را فراهم می کند files مطابق شکل زیر از قبل پیکربندی شده است:
- HAL با پایه زمانی پیشفرض با هسته Arm® SysTick راهاندازی شد.
- SysTick ISR برای هدف HAL_Delay() پیاده سازی شد.
- توجه: هنگام کپی کردن یک پروژه موجود در مکان دیگری، مطمئن شوید که تمام مسیرهای ارائه شده به روز شده باشند.
- اجزای سیستم عامل را پیکربندی کنید
اجزای HAL و میانافزار مجموعهای از گزینههای پیکربندی زمان ساخت را با استفاده از ماکروهای تعریف شده #define در یک هدر ارائه میکنند. file. یک پیکربندی قالب file در داخل هر کامپوننت ارائه می شود که باید در پوشه پروژه (معمولاً پیکربندی) کپی شود file قطعه xxx_conf_template.h نام دارد- الگو باید هنگام کپی کردن آن در پوشه پروژه حذف شود). پیکربندی file اطلاعات کافی برای درک تأثیر هر گزینه پیکربندی ارائه می دهد. اطلاعات دقیق تر در اسناد ارائه شده برای هر جزء موجود است.
- کتابخانه HAL را راه اندازی کنید
پس از پرش به برنامه اصلی، کد برنامه باید API ()HAL_Init را فراخوانی کند تا کتابخانه HAL را مقداردهی کند، که وظایف زیر را انجام می دهد:- پیکربندی پیش واکشی حافظه فلش و اولویت وقفه SysTick (از طریق ماکروهای تعریف شده در stm32 wl3x_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 را پیکربندی میکند.
- HAL_RCC_OscConfig(): این API اسیلاتورهای داخلی و خارجی را پیکربندی می کند. کاربر انتخاب می کند
- دستگاه جانبی را راه اندازی کنید
- ابتدا تابع مقداردهی اولیه محیطی را بنویسید. به صورت زیر عمل کنید:
- ساعت جانبی را فعال کنید.
- 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\ \ پیشینamples_ LL ( به نام برد مانند NUCLEO-WL32CC33 اشاره دارد.
پروژه الگو یک تابع حلقه اصلی خالی را ارائه می دهد که نقطه شروع خوبی برای درک تنظیمات پروژه برای STM32CubeWL3 است. ویژگی های اصلی قالب به شرح زیر است:- این شامل کدهای منبع درایورهای LL و CMSIS است که حداقل مجموعه ای از اجزای مورد نیاز برای توسعه کد در یک برد مشخص است.
- این شامل مسیرهای گنجانده شده برای تمام اجزای سیستم عامل مورد نیاز است.
- دستگاه خط تولید STM32WL3x پشتیبانی شده را انتخاب می کند و امکان پیکربندی صحیح درایورهای CMSIS و LL را فراهم می کند.
- کاربر آماده برای استفاده را فراهم می کند files هایی که به صورت زیر از قبل پیکربندی شده اند:
- main.h: لایه انتزاعی تعریف LED و USER_BUTTON.
- main.c: پیکربندی ساعت سیستم برای حداکثر فرکانس.
- پورت LL سابقampدر:
- پوشه Templates_LL را کپی/پیست کنید - برای حفظ منبع اولیه - یا مستقیماً یک پروژه Template s_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_WakeupRadio_Rx قرار دارد.
تظاهرات/LPAWUR
- LPAWUR_WakeupRadio_Rx: این حالت قبلیample توضیح می دهد که چگونه SoC را در حالت توقف عمیق تنظیم کنید و LPAWUR را برای بیدار کردن SoC هنگامی که یک فریم می رسد و به درستی دریافت می شود پیکربندی کنید. این سابقample سمت گیرنده را نشان می دهد و به دستگاه دیگری به عنوان فرستنده نیاز دارد. فرستنده سابقample در پوشه NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_Tx قرار دارد.
برنامه Sigfox™
این برنامهها نحوه پیادهسازی یک سناریوی Sigfox™ و استفاده از APIهای Sigfox™ موجود را نشان میدهند. آنها در مسیر پروژه Projects\NUCLEO-WL33CC\Applications\Sigfox\ در دسترس هستند:
- Sigfox_CLI: این برنامه نحوه استفاده از یک رابط خط فرمان (CLI) را برای ارسال دستوراتی که از پروتکل Sigfox™ برای ارسال پیام و انجام آزمایشهای تاییدیه استفاده میکنند، نشان میدهد.
- Sigfox_PushButton: این برنامه امکان ارزیابی قابلیت های رادیویی دستگاه STM32WL33xx Sigfox™ را فراهم می کند. با فشار دادن PB1 یک فریم Sigfox™ آزمایشی ارسال می شود.
تاریخچه تجدید نظر
جدول 3. تاریخچه بازنگری سند
تاریخ | تجدید نظر | تغییرات |
29-مارس-2024 | 1 | انتشار اولیه |
30 اکتبر 2024 | 2 | ادغام کامل STM32CubeWL3 در STM32Cube. به روز شده:
• مقدمه • بخش 2: ویژگی های اصلی STM32CubeWL3 • بخش 3.2.1: اجزای میان افزار • بخش 4: بسته سیستم عامل STM32CubeWL3 به پایان رسیدview • بخش 5.1: اجرای اولین سابقample • بخش 5.3: کاربردهای رادیویی، نمایشها و موارد قبلیamples اضافه شد: • بخش 5.1.1: نحوه اجرای HAL example • بخش 5.2.1: استفاده از STM32CubeMX برای توسعه یا به روز رسانی یک برنامه • اسبند 6.4: آیا پروژه الگویی برای MRSUBG/LPAWUR محیطی سابق وجود دارد؟amples • بخش 6.5: STM32CubeMX چگونه می تواند بر اساس نرم افزار تعبیه شده کد تولید کند؟ حذف شد: • ابزارهای رایانه شخصی، از جمله ناوبر, رابط کاربری گرافیکی STM32WL3، و MR-SUBG Sequencer GUI • WiSE-Studio IOMapper چگونه میتواند بر اساس نرمافزار تعبیهشده کد تولید کند؟ • آیا Navigator اجازه دسترسی به منابع بسته نرم افزاری را می دهد؟ |
22 ژانویه 2025 | 3 | دامنه دستگاه های قابل اجرا را به میکروکنترلرهای STM32WL30xx و STM32WL31xx در جدول 1 گسترش داد. ماکروها برای خط تولید STM32WL3x. |
اطلاعیه مهم - با دقت بخوانید
- STMicroelectronics NV و شرکتهای تابعه آن ("ST") این حق را برای خود محفوظ میدارند که در هر زمان بدون اطلاع قبلی، تغییرات، اصلاحات، بهبودها، اصلاحات و بهبودهایی را در محصولات ST و/یا این سند ایجاد کنند. خریداران باید آخرین اطلاعات مربوط به محصولات ST را قبل از ثبت سفارش به دست آورند. محصولات ST مطابق با شرایط و ضوابط فروش ST در زمان تایید سفارش فروخته می شوند.
- خریدار تنها مسئول انتخاب، انتخاب و استفاده از محصولات ST است و ST هیچ مسئولیتی در قبال کمک برنامه یا طراحی محصولات خریداران نمی پذیرد.
- هیچ مجوز صریح یا ضمنی برای هیچ گونه حق مالکیت معنوی توسط ST در اینجا اعطا نمی شود.
- فروش مجدد محصولات ST با مقرراتی متفاوت از اطلاعات مندرج در اینجا هرگونه ضمانت اعطا شده توسط ST برای چنین محصولی را باطل می کند.
- ST و آرم ST علائم تجاری ST هستند. برای اطلاعات بیشتر در مورد علائم تجاری ST، مراجعه کنید www.st.com/trademarks. سایر نام های محصول یا خدمات متعلق به صاحبان مربوطه می باشد.
- اطلاعات این سند جایگزین اطلاعاتی می شود که قبلاً در هر نسخه قبلی این سند ارائه شده است.
- © 2025 STMicroelectronics – کلیه حقوق محفوظ است
سوالات متداول
چه زمانی باید از HAL به جای درایورهای LL استفاده کنم؟
درایورهای HAL APIهای سطح بالا و عملکرد محور را با سطح بالایی از قابلیت حمل ارائه می دهند. پیچیدگی محصول یا محیطی برای کاربران نهایی پنهان است. درایورهای LL APIهای سطح ثبت لایه پایین را با بهینه سازی بهتر اما قابل حمل کمتر ارائه می دهند. آنها نیاز به دانش عمیق محصول یا مشخصات IP دارند.
APIهای اولیه سازی LL چگونه فعال می شوند؟
تعریف APIهای اولیه سازی LL و ساختارهای منابع مرتبط و نمونه های اولیه توسط سوئیچ کامپایل USE_FULL_LL_DRIVER مشروط شده است. برای اینکه بتوانید از APIهای اولیه سازی LL استفاده کنید، این سوئیچ را در پیش پردازنده کامپایلر زنجیره ابزار اضافه کنید.
آیا پروژه قالبی برای MRSUBG/LPAWUR محیطی سابق وجود دارد؟amples
برای ایجاد یک MRSUBG یا LPAWUR سابقampپروژه le، یا از پروژه اسکلت ارائه شده تحت Pr OjectsNUCLEO- 33CC Ex شروع شودamples MRSUBG یا ProjectsNUCLEO-WL33CC Examples LPAWUR یا از هر پروژه موجود تحت همین دایرکتوری ها.
STM32CubeMX چگونه می تواند بر اساس نرم افزار تعبیه شده کد تولید کند؟
STM32CubeMX دارای دانش داخلی میکروکنترلرهای STM32، از جمله ابزارهای جانبی و نرم افزار آنها است که به آن اجازه می دهد یک نمایش گرافیکی به کاربر ارائه دهد و h. یا .c را تولید کند. files بر اساس پیکربندی کاربر است.
اسناد / منابع
![]() |
میکروکنترلرهای ST STM32WL3x [pdf] دفترچه راهنمای کاربر میکروکنترلرهای STM32WL3x، میکروکنترلرهای STM32WL3x |