STM32WL3x-لويجو

حزمة برامج STM32WL3x

حزمة برامج STM32WL3x - المنتج

تحديد

  • اسم المنتج: حزمة برامج STM32CubeWL3
  • التوافق: متحكمات STM32WL3x
  • المميزات الرئيسية:
    • واجهات برمجة التطبيقات ذات الطبقة المنخفضة (LL) وطبقة تجريد الأجهزة (HAL)
    • مكونات البرامج الوسيطة للنواة SigfoxTM وFatFS وFreeRTOSTM
    • التطبيقات والعروض التوضيحية

تعليمات استخدام المنتج

ابدء
لبدء استخدام حزمة البرامج STM32CubeWL3، اتبع الخطوات التالية:

  1. قم بتنزيل حزمة البرامج من الموقع الرسمي webموقع.
  2. قم بتثبيت بيئة التطوير اللازمة (على سبيل المثال، STM32CubeIDE، EWARM، MDK-ARM).
  3. ارجع إلى السابقampالملفات والتطبيقات المقدمة للتوجيه.

هندسة STM32CubeWL3 انتهتview
تم تصميم حزمة برامج STM32CubeWL3 حول ثلاثة مستويات رئيسية

  • المستوى 0: طبقة تجريد الأجهزة (HAL) وبرامج تشغيل BSP.
  • المستوى 1: التطبيقات والمكتبات والمكونات القائمة على البروتوكول.

الأسئلة الشائعة

س: ما هي الميزات الرئيسية لحزمة البرامج STM32CubeWL3؟
ج: تتضمن الميزات الرئيسية واجهات برمجة التطبيقات منخفضة الطبقة و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
    • واجهات برمجة التطبيقات منخفضة الطبقة STM32Cube، مما يضمن أفضل أداء وأفضل مساحة مع درجة عالية من التحكم من جانب المستخدم في الأجهزة
    • مجموعة متسقة من مكونات البرامج الوسيطة مثل نواة FreeRTOS™ وFatFS وSigfox™
    • جميع أدوات البرامج المضمنة مع مجموعات كاملة من الأجهزة الطرفية والتطبيقية على سبيل المثالampليه
  • حزم توسعة STM32Cube ، والتي تحتوي على مكونات برمجية مدمجة تكمل وظائف STM32Cube MCU و MPU Packages مع:
    • امتدادات البرمجيات الوسيطة والطبقات التطبيقية
    • Exampيعمل على بعض لوحات تطوير STMicroelectronics المحددة

يصف دليل المستخدم هذا كيفية البدء في استخدام حزمة STM32CubeWL3 MCU.
يصف القسم 2 الميزات الرئيسية لـ STM32CubeWL3 ويقدم القسم 3 شرحًا تفصيليًاview من هندستها المعمارية وبنية حزمة MCU.

معلومات عامة

يقوم STM32CubeWL3 بتشغيل تطبيقات العرض التوضيحي بتردد دون جيجاهرتز، بما في ذلك الثنائيات Sigfox™، على وحدات تحكم دقيقة من خط إنتاج STM32WL3x تعتمد على معالج Arm® Cortex®‑M0+.
تحتوي وحدات التحكم الدقيقة STM32WL3x على أجهزة طرفية راديو RF متوافقة مع ترددات دون جيجاهرتز من STMicroelectronics، وهي مُحسّنة لاستهلاك طاقة منخفض للغاية وأداء لاسلكي ممتاز، للحصول على عمر بطارية لا مثيل له.
ملحوظة:Arm هي علامة تجارية مسجلة لشركة Arm Limited (أو الشركات التابعة لها) في الولايات المتحدة و/أو في أي مكان آخر.

الميزات الرئيسية لـ STM32CubeWL3

  • تعمل حزمة STM32CubeWL3 MCU على وحدات تحكم STM32 32 بت تعتمد على معالج Arm® Cortex®‑M0+. وهي تجمع في حزمة واحدة كل مكونات البرامج المضمنة العامة المطلوبة لتطوير تطبيق لوحدات التحكم الدقيقة من خط إنتاج STM32WL3x.
  • تتضمن الحزمة واجهات برمجة تطبيقات الطبقة المنخفضة (LL) وطبقة تجريد الأجهزة (HAL) التي تغطي أجهزة المتحكم الدقيق، إلى جانب مجموعة واسعة من التطبيقات.ampيتم تشغيل واجهات برمجة التطبيقات HAL وLL على لوحات STMicroelectronics. تتوفر واجهات برمجة التطبيقات HAL وLL في ترخيص BSD مفتوح المصدر لراحة المستخدم. كما تتضمن أيضًا مكونات البرامج الوسيطة للنواة Sigfox™ وFatFS وFreeRTOS™.
  • توفر حزمة STM32CubeWL3 MCU أيضًا العديد من التطبيقات والعروض التوضيحية التي تنفذ جميع مكونات البرامج الوسيطة الخاصة بها.
  • تم توضيح تخطيط مكونات حزمة MCU STM32CubeWL3 في الشكل 1.

الشكل 1. مكونات حزمة MCU STM32CubeWL3 

حزمة برامج STM32WL3x (2)

هندسة STM32CubeWL3view

تم تصميم حل حزمة STM32CubeWL3 MCU حول ثلاثة مستويات مستقلة تتفاعل بسهولة كما هو موضح في الشكل 2. حزمة برامج STM32WL3x (3)المستوى 0
وينقسم هذا المستوى إلى ثلاث طبقات فرعية:

  • حزمة دعم المجلس (BSP).
  • طبقة تجريد الأجهزة (HAL):
    • برامج التشغيل الطرفية HAL
    • برامج تشغيل ذات طبقة منخفضة
  • الاستخدام الطرفي الأساسي على سبيل المثالampليز.

حزمة دعم المجلس (BSP)
توفر هذه الطبقة مجموعة من واجهات برمجة التطبيقات المتعلقة بمكونات الأجهزة في لوحات الأجهزة (مثل مصابيح LED والأزرار وبرامج تشغيل COM). وتتكون من جزأين:

  • عنصر:
    هذا هو برنامج التشغيل المتعلق بالجهاز الخارجي الموجود على اللوحة وليس بـ STM32. يوفر برنامج تشغيل المكونات واجهات برمجة تطبيقات محددة لمكونات برنامج تشغيل BSP الخارجية ويمكن نقله على أي لوحة أخرى.
  • سائق بسب:

فهو يسمح بربط برامج تشغيل المكونات بلوحة معينة ويوفر مجموعة من واجهات برمجة التطبيقات سهلة الاستخدام. قاعدة تسمية واجهة برمجة التطبيقات هي BSP_FUNCT_Action().
Exampلو: BSP_LED_Init()، BSP_LED_On()
يعتمد BSP على بنية معيارية تتيح سهولة النقل على أي جهاز بمجرد تنفيذ الإجراءات ذات المستوى المنخفض.

طبقة تجريد الأجهزة (HAL) والطبقة المنخفضة (LL)
يعد STM32CubeWL3 HAL وLL متكاملين ويغطيان مجموعة واسعة من متطلبات التطبيق:

  • توفر برامج تشغيل HAL واجهات برمجة تطبيقات عالية المستوى وموجهة نحو الوظائف ومحمولة للغاية. إنها تخفي وحدة MCU والتعقيد المحيطي للمستخدم النهائي.
    توفر برامج تشغيل HAL واجهات برمجة تطبيقات عامة متعددة الحالات وموجهة للميزات، والتي تبسط تنفيذ تطبيق المستخدم من خلال توفير عمليات جاهزة للاستخدام. على سبيل المثالampبالنسبة للأجهزة الطرفية للاتصالات (I2C وUART وغيرها)، فإنه يوفر واجهات برمجة تطبيقات تسمح بتهيئة وتكوين الجهاز الطرفي، وإدارة نقل البيانات بناءً على عملية الاستطلاع أو المقاطعة أو DMA، ومعالجة أخطاء الاتصال التي قد تنشأ أثناء الاتصال. تنقسم واجهات برمجة تطبيقات برنامج تشغيل HAL إلى فئتين:
  1. واجهات برمجة التطبيقات العامة، التي توفر وظائف عامة ومشتركة لجميع وحدات التحكم الدقيقة من سلسلة STM32.
  2. واجهات برمجة التطبيقات الملحقة، التي توفر وظائف محددة ومخصصة لعائلة معينة أو رقم جزء محدد.
  • توفر واجهات برمجة التطبيقات منخفضة المستوى واجهات برمجة تطبيقات منخفضة المستوى على مستوى السجل، مع تحسين أفضل ولكن قابلية أقل للنقل. وهي تتطلب معرفة عميقة بمواصفات وحدة التحكم الدقيقة والأجهزة الطرفية.
    تم تصميم برامج تشغيل LL لتوفير طبقة سريعة وخفيفة الوزن وموجهة نحو الخبراء تكون أقرب إلى الأجهزة من HAL. وخلافًا لـ HAL، لا يتم توفير واجهات برمجة تطبيقات LL للأجهزة الطرفية حيث لا يعد الوصول المحسن ميزة أساسية، أو لتلك التي تتطلب تكوين برامج ثقيلة أو حزمة معقدة من المستوى العلوي.

تتميز برامج التشغيل LL بما يلي:

  • مجموعة من الوظائف لتهيئة الميزات الرئيسية الطرفية وفقًا للمعلمات المحددة في هياكل البيانات.
  • مجموعة من الوظائف لملء هياكل بيانات التهيئة بقيم إعادة التعيين المقابلة لكل حقل.
  • وظيفة لإلغاء تهيئة الأجهزة الطرفية (استعادة السجلات الطرفية إلى قيمها الافتراضية).
  • مجموعة من الوظائف المضمنة للوصول المباشر والذري إلى السجل.
  • الاستقلال الكامل عن HAL وإمكانية استخدامه في الوضع المستقل (بدون برامج تشغيل HAL).
  • تغطية كاملة للميزات الطرفية المدعومة.

الاستخدام الطرفي الأساسي على سبيل المثالampليه
هذه الطبقة تحيط بالجزء السابقampتم إنشاء الملفات عبر الأجهزة الطرفية STM32 باستخدام موارد HAL وBSP فقط.
مظاهرة سابقةampتتوفر أيضًا الملفات لإظهار أمثلة أكثر تعقيدًاampالسيناريوهات ذات الأجهزة الطرفية المحددة، مثل MRSUBG وLPAWUR.

المستوى 1
وينقسم هذا المستوى إلى طبقتين فرعيتين:

  • مكونات الوسيطة
  • Exampتعتمد على مكونات البرامج الوسيطة

مكونات الوسيطة
البرنامج الوسيط عبارة عن مجموعة من المكتبات التي تغطي نواة FreeRTOS™، وFatFS، ومكتبة بروتوكول Sigfox™. يتم التفاعل الأفقي بين مكونات هذه الطبقة عن طريق استدعاء واجهات برمجة التطبيقات المميزة.
يتم التفاعل الرأسي مع برامج التشغيل ذات الطبقة المنخفضة من خلال عمليات رد اتصال محددة ووحدات ماكرو ثابتة يتم تنفيذها في واجهة استدعاء نظام المكتبة.
الملامح الرئيسية لكل مكون من مكونات البرمجيات الوسيطة هي كما يلي:

  • نواة FreeRTOS™: تنفذ نظام تشغيل في الوقت الفعلي (RTOS)، وهو مصمم للأنظمة المضمنة.
  • Sigfox™: ينفذ مكتبة بروتوكول Sigfox™ المتوافقة مع شبكة بروتوكول Sigfox™ ويتضمن مكتبة بروتوكول اختبار RF للاختبار ضد أدوات RF Sigfox™.
  • FatFS: ينفذ نظام FAT العام file وحدة النظام.

Exampتعتمد على مكونات البرامج الوسيطة
يأتي كل مكون من مكونات الوسيطة مع واحد أو أكثر من المكونات السابقةampالتطبيقات، والتي تُسمى أيضًا بالتطبيقات، توضح كيفية استخدامها. التكاملampيتم أيضًا توفير الملفات التي تستخدم العديد من مكونات البرامج الوسيطة.

حزمة البرامج الثابتة STM32CubeWL3view

الأجهزة والعتاد STM32WL3x المدعومة
توفر STM32Cube طبقة تجريد أجهزة محمولة للغاية (HAL) مبنية حول بنية عامة. وهي تسمح بمبدأ الطبقات المبنية، مثل استخدام طبقة البرامج الوسيطة لتنفيذ وظائفها دون معرفة عميقة بوحدات التحكم الدقيقة المستخدمة. وهذا يحسن من إمكانية إعادة استخدام كود المكتبة ويضمن سهولة النقل إلى أجهزة أخرى.

  • علاوة على ذلك، بفضل بنيتها الطبقية، توفر STM32CubeWL3 الدعم الكامل لجميع خطوط إنتاج STM32WL3x.
  • يجب على المستخدم فقط تعريف الماكرو الصحيح في stm32wl3x.h.

يوضح الجدول 1 الماكرو الذي يجب تعريفه وفقًا لجهاز خط إنتاج STM32WL3x المستخدم. يجب أيضًا تعريف هذا الماكرو في معالج ما قبل التجميع.
الجدول 1. وحدات الماكرو لسلسلة منتجات STM32WL3x

ماكرو محدد في stm32wl3x.h أجهزة خط إنتاج STM32WL3x
stm32wl33 متحكمات STM32WL33xx

يتميز STM32CubeWL3 بمجموعة غنية منampالملفات والتطبيقات على كافة المستويات، مما يجعل من السهل فهم واستخدام أي برنامج تشغيل HAL أو مكونات البرامج الوسيطة.ampيتم تشغيلها على لوحات STMicroelectronics المدرجة في الجدول 2.

سبورة الأجهزة المدعومة بلوحة STM32WL3x
نوكليو-WL33CC1 إس تي إم 32 دبليو إل 33 سي سي
نوكليو-WL33CC2 إس تي إم 32 دبليو إل 33 سي سي

يمكن تشغيل حزمة MCU STM32CubeWL3 على أي جهاز متوافق. يقوم المستخدمون ببساطة بتحديث برامج تشغيل BSP لنقل البرامج المرفقةampقم بدمج العناصر الموجودة على لوحاتها، إذا كانت تحتوي على نفس ميزات الأجهزة (مثل مصابيح LED أو الأزرار).

انتهت حزمة البرامج الثابتةview
يتم توفير حل حزمة STM32CubeWL3 MCU في حزمة مضغوطة واحدة لها الهيكل الموضح في الشكل 3.
الشكل 3. بنية حزمة البرامج الثابتة STM32CubeWL3

حزمة برامج STM32WL3x (4)

حذر:

لا يجوز للمستخدم تعديل المكونات fileس. يمكن للمستخدم فقط تحرير مصادر \Projects.
لكل لوحة، مجموعة من السابقينampيتم توفير les مع مشاريع تم تكوينها مسبقًا لسلاسل الأدوات EWARM وMDK-ARM وSTM32CubeIDE.
يوضح الشكل 4 هيكل المشروع للوحات NUCLEO-WL33CCx. حزمة برامج STM32WL3x (5)

السابقampيتم تصنيف الملفات وفقًا لمستوى STM32CubeWL3 الذي تنطبق عليه. يتم تسميتها على النحو التالي:

  • المستوى 0 السابقampليه تسمى السابقينampليه السابقينamples_LL، والسابقينamples_MIX. يستخدمون على التوالي برامج تشغيل HAL وبرامج تشغيل LL ومزيجًا من برامج تشغيل HAL وLL بدون أي مكون وسيط. عرض توضيحيampتتوفر أيضًا.
  • المستوى 1 السابقampتُسمى هذه الملفات بالتطبيقات. وهي توفر حالات الاستخدام النموذجية لكل مكون من مكونات البرامج الوسيطة.

من الممكن إنشاء أي تطبيق برنامج ثابت للوحة معينة بسرعة باستخدام مشاريع القوالب المتوفرة في الدليلين Templates وTemplates_LL.

Exampليه السابقينamples_LL، والسابقينamples_MIX لها نفس البنية:

  • مجلد \Inc يحتوي على كافة العناوين files.
  • \Src المجلد الذي يحتوي على الكود المصدر.
  • المجلدات \EWARM و\MDK-ARM و\STM32CubeIDE التي تحتوي على المشروع الذي تم تكوينه مسبقًا لكل سلسلة أدوات.
  • readme.md و readme.html يصفان الملف السابقampالسلوك والبيئة اللازمة لإنجاحه.

البدء باستخدام STM32CubeWL3

تشغيل السابق الأولample
يوضح هذا القسم مدى سهولة تشغيل أول exampفي STM32CubeWL3، يستخدم هذا المثال توليد مفتاح تبديل LED بسيط يعمل على لوحة NUCLEO-WL33CC1:

  1. تنزيل حزمة STM32CubeWL3 MCU.
  2. قم بفك ضغطه، أو قم بتشغيل برنامج التثبيت إذا كان متوفرًا، في الدليل الذي تختاره.
  3. تأكد من عدم تعديل بنية الحزمة الموضحة في الشكل 3. بنية حزمة البرامج الثابتة STM32CubeWL3. لاحظ أنه من المستحسن أيضًا نسخ الحزمة في موقع قريب من وحدة التخزين الجذرية (أي C:\ST أو G:\Tests)، حيث تواجه بعض بيئات التطوير المتكاملة مشكلات عندما يكون المسار طويلاً للغاية.

كيفية تشغيل HAL example
قبل تحميل وتشغيل ملف exampلذلك، يوصى بشدة بقراءة الكتاب السابقampالتمهيدي file لأي تكوين محدد.

  1. انتقل إلى \Projects\NUCLEO-WL33CC\Exampليز.
  2. افتح المجلدات \GPIO، ثم \GPIO_EXTI.
  3. افتح المشروع باستخدام سلسلة الأدوات المفضلة لديك. نظرة سريعةview حول كيفية فتح وبناء وتشغيل السابقينampويرد أدناه مع سلاسل الأدوات المدعومة.
  4. إعادة بناء كل شيء files وقم بتحميل الصورة في الذاكرة المستهدفة.
  5. تشغيل exampلمزيد من التفاصيل، راجع المرفق السابقampالتمهيدي file.

لفتح وبناء وتشغيل حساب سابقampللتعامل مع كل سلسلة من سلاسل الأدوات المدعومة، اتبع الخطوات التالية:

  • إيوارم:
  1. تحت السابقينampمجلد les، افتح المجلد الفرعي \EWARM.
  2. قم بتشغيل مساحة العمل Project.eww (قد يتغير اسم مساحة العمل من اسم سابق إلى اسم سابق)ampلو إلى آخر).
  3. إعادة بناء كل شيء files: [المشروع]>[إعادة بناء الكل].
  4. قم بتحميل صورة المشروع: [المشروع]>[تصحيح الأخطاء].
  5. قم بتشغيل البرنامج: [تصحيح الأخطاء]>[انتقل (F5)].
  • MDK-ARM:
  1. تحت السابقينampمجلد les، افتح المجلد الفرعي \MDK-ARM.
  2. افتح مساحة عمل Project.uvproj (قد يتغير اسم مساحة العمل من ملف سابق إلى آخر).ampلو إلى آخر).
  3. إعادة بناء كل شيء files: [المشروع]>[إعادة بناء كل الهدف fileس].
  4. قم بتحميل صورة المشروع: [Debug]>[Start/Stop Debug Session].
  5. تشغيل البرنامج: [تصحيح]>[تشغيل (F5)].
  • STM32CubeIDE:
  1. افتح سلسلة أدوات STM32CubeIDE.
  2. انقر فوق [File]>[تبديل مساحة العمل]>[أخرى] وتصفح إلى دليل مساحة العمل STM32CubeIDE.
  3. انقر فوق [File]>[استيراد]، حدد [عام]>[المشاريع الموجودة في مساحة العمل]، ثم انقر فوق [التالي].
  4. انتقل إلى دليل مساحة العمل STM32CubeIDE وحدد المشروع.
  5. إعادة بناء كل المشروع fileس: حدد المشروع في نافذة مستكشف المشاريع ثم انقر فوق
    [مشروع]>[بناء المشروع] القائمة.
  6.  قم بتشغيل البرنامج: [تشغيل]>[تصحيح الأخطاء (F11)].

تطوير تطبيق مخصص

استخدام STM32CubeMX لتطوير التطبيق أو تحديثه
في حزمة STM32Cube MCU، يتم تنفيذ جميع المشاريع تقريبًاampيتم إنشاء الملفات باستخدام أداة STM32CubeMX لتهيئة النظام والأجهزة الطرفية والبرامج الوسيطة.

الاستخدام المباشر لمشروع قائم مثلاampيتطلب الإصدار من أداة STM32CubeMX STM32CubeMX 6.12.0 أو أعلى:

  • بعد تثبيت STM32CubeMX، افتح المشروع المقترح وقم بتحديثه إذا لزم الأمر.
    الطريقة الأبسط لفتح مشروع موجود هي النقر نقرًا مزدوجًا فوق الملف *.ioc file بحيث يفتح STM32CubeMX المشروع ومصدره تلقائيًا fileيقوم STM32CubeMX بإنشاء كود المصدر الأولي لمثل هذه المشاريع.
  • يحتوي التعليقان "USER CODE BEGIN" و"USER CODE END" على كود المصدر الرئيسي للتطبيق. إذا تم تعديل اختيار الأجهزة الطرفية والإعدادات، يقوم STM32CubeMX بتحديث جزء التهيئة من الكود مع الحفاظ على كود المصدر الرئيسي للتطبيق.

لتطوير مشروع مخصص باستخدام STM32CubeMX، اتبع العملية خطوة بخطوة:

  1. قم بتكوين جميع البرامج المضمنة المطلوبة باستخدام برنامج حل تعارض إخراج الدبابيس، ومساعد إعداد شجرة الساعة، وحاسبة استهلاك الطاقة، والأداة المساعدة التي تقوم بإجراء تكوين الأجهزة الطرفية لوحدة التحكم الدقيقة (مثل GPIO أو USART).
  2. قم بإنشاء كود التهيئة C بناءً على التكوين المحدد. هذا الرمز جاهز للاستخدام في العديد من بيئات التطوير. يتم الاحتفاظ برمز المستخدم عند إنشاء الكود التالي.
    لمزيد من المعلومات حول STM32CubeMX، ارجع إلى دليل المستخدم STM32CubeMX لتكوين STM32 وتوليد كود C التهيئة (UM1718).

تطبيقات السائق

تطبيق هال
يصف هذا القسم الخطوات المطلوبة لإنشاء تطبيق HAL مخصص باستخدام STM32CubeWL3:

  1. إنشاء مشروع
    لإنشاء مشروع جديد، ابدأ إما من مشروع القالب المقدم لكل لوحة ضمن \Projects\< STM32xxx_yyy>\Templates أو من أي مشروع متاح ضمن \Projects\ \السابقampl es أو \المشاريع\ \التطبيقات (حيث يشير إلى اسم اللوحة). يوفر مشروع القالب دالة حلقة رئيسية فارغة. ومع ذلك، فهو نقطة بداية جيدة لفهم إعدادات مشروع STM32CubeWL32. يتمتع القالب بالخصائص التالية:
    • وهو يحتوي على كود مصدر HAL، وبرامج تشغيل CMSIS، وBSP، وهي مجموعة الحد الأدنى من المكونات المطلوبة لتطوير التعليمات البرمجية على لوحة معينة.
    • أنه يحتوي على المسارات المضمنة لجميع مكونات البرامج الثابتة.
    • إنه يحدد أجهزة خط إنتاج STM32WL3x المدعومة، مما يسمح بتكوين برامج تشغيل CMSIS وHAL بشكل صحيح.
    • ويوفر للمستخدم جاهزة للاستخدام fileتم تكوينه مسبقًا كما هو موضح أدناه:
    • تم تهيئة HAL باستخدام قاعدة الوقت الافتراضية مع SysTick الأساسي Arm®.
    • تم تطبيق SysTick ISR لغرض HAL_Delay().
      ملاحظة: عند نسخ مشروع موجود إلى موقع آخر، تأكد من تحديث كافة المسارات المضمنة.
  2. تكوين مكونات البرامج الثابتة
    توفر مكونات HAL والبرامج الوسيطة مجموعة من خيارات تكوين وقت البناء باستخدام وحدات الماكرو #define المعلنة في الرأس file. تكوين القالب file يتم توفيره داخل كل مكون، والذي يجب نسخه إلى مجلد المشروع (عادةً ملف التكوين) file يُسمى xxx_conf_template.h، ويجب إزالة الجزء _template عند نسخه إلى مجلد المشروع). التكوين file يوفر معلومات كافية لفهم تأثير كل خيار تكوين. تتوفر معلومات أكثر تفصيلاً في الوثائق المقدمة لكل مكون.
  3. بدء تشغيل مكتبة HAL
    بعد الانتقال إلى البرنامج الرئيسي، يجب على كود التطبيق استدعاء HAL_Init() API لتهيئة مكتبة HAL، التي تنفذ المهام التالية:
    • تكوين أولوية جلب البيانات من ذاكرة الفلاش ومقاطعة SysTick (من خلال وحدات الماكرو المحددة في stm3 2wl3x_hal_conf.h).
    •  تهيئة SysTick لتوليد مقاطعة كل ميلي ثانية عند أولوية مقاطعة SysTick TICK_INT_PRIO المحددة في stm32wl3x_hal_conf.h.
    • ضبط أولوية مجموعة NVIC على 0.
    • استدعاء دالة الاستدعاء HAL_MspInit() المحددة في ملف المستخدم stm32wl3x_hal_msp.c file لإجراء تهيئة الأجهزة العالمية ذات المستوى المنخفض.
  4. تكوين ساعة النظام
    يتم تكوين ساعة النظام عن طريق استدعاء واجهتي برمجة التطبيقات الموضحتين أدناه:
    • HAL_RCC_OscConfig(): تقوم هذه الواجهة البرمجية بتكوين المذبذبات الداخلية والخارجية. يختار المستخدم تكوين مذبذب واحد أو جميع المذبذبات.
    • HAL_RCC_ClockConfig(): تقوم هذه الواجهة البرمجية بتكوين مصدر ساعة النظام، وزمن انتقال ذاكرة الفلاش، ومقسمات AHB وAPB المسبقة.
  5. تهيئة الأجهزة الطرفية
    •  أولاً، اكتب دالة تهيئة الطرفية. اتبع الخطوات التالية:
    • تمكين الساعة الطرفية.
    • قم بتكوين وحدات GPIO الطرفية.
    • قم بتكوين قناة DMA وتمكين مقاطعة DMA (إذا لزم الأمر).
    • تمكين المقاطعة الطرفية (إذا لزم الأمر).
    • قم بتحرير stm32xxx_it.c لاستدعاء معالجات المقاطعة المطلوبة (الطرفية وDMA)، إذا لزم الأمر.
    •  اكتب وظائف الاستدعاء الكامل للعملية إذا كان من المفترض استخدام مقاطعة محيطية أو DMA.
    •  في المستخدم main.c file، قم بتهيئة بنية المقبض المحيطي ثم قم باستدعاء وظيفة تهيئة الجهاز المحيطي لتهيئة الجهاز المحيطي.
  6. تطوير التطبيق
    في هذه الtagهـ، النظام جاهز ويمكن البدء في تطوير كود تطبيق المستخدم.
    يوفر HAL واجهات برمجة التطبيقات البديهية والجاهزة للاستخدام لتكوين الأجهزة الطرفية. وهو يدعم الاستقصاء والمقاطعات ونموذج برمجة DMA، لاستيعاب أي متطلبات للتطبيق. لمزيد من التفاصيل حول كيفية استخدام كل جهاز طرفي، راجع المثال الغنيampالمجموعة المقدمة في حزمة STM32CubeWL3 MCU.

حذر:
في تنفيذ HAL الافتراضي، يتم استخدام مؤقت SysTick كقاعدة زمنية: فهو ينشئ مقاطعات على فترات زمنية منتظمة. إذا تم استدعاء HAL_Delay() من عملية ISR الطرفية، فتأكد من أن مقاطعة SysTick لها أولوية أعلى (أقل عدديًا) من المقاطعة الطرفية. وإلا، فإن عملية ISR المتصل بها
تم حظره. يتم إعلان الوظائف التي تؤثر على تكوينات قاعدة الوقت على أنها __weak لجعل التجاوز ممكنًا في حالة وجود تنفيذات أخرى في المستخدم file (باستخدام مؤقت للأغراض العامة، على سبيل المثالamp(le، أو مصدر زمني آخر).
لمزيد من التفاصيل، راجع ملف HAL_TimeBase exampليه.

تطبيق إل
يصف هذا القسم الخطوات اللازمة لإنشاء تطبيق LL مخصص باستخدام STM32CubeWL3.

  1. إنشاء مشروع
    لإنشاء مشروع جديد، ابدأ من مشروع Templates_LL المقدم لكل لوحة ضمن \Projects\ \Templates_LL أو من أي مشروع متاح ضمن \Projects\ \السابقamples_LL ( يشير إلى اسم اللوحة، مثل NUCLEO-WL32CC33).
    يوفر مشروع القالب دالة حلقة رئيسية فارغة، وهي نقطة بداية جيدة لفهم إعدادات المشروع لـ STM32CubeWL3. الخصائص الرئيسية للقالب هي التالية:
    • تحتوي على أكواد المصدر لبرامج التشغيل LL وCMSIS، وهي المجموعة الدنيا من المكونات اللازمة لتطوير الكود على لوحة معينة.
    • أنه يحتوي على المسارات المضمنة لجميع مكونات البرامج الثابتة المطلوبة.
    • يقوم بتحديد جهاز خط إنتاج STM32WL3x المدعوم ويسمح بالتكوين الصحيح لبرامج التشغيل CMSIS وLL.
    • ويوفر للمستخدم جاهزة للاستخدام files التي تم تكوينها مسبقًا على النحو التالي:
    • main.h: طبقة تجريد تعريف LED وUSER_BUTTON.
    • main.c: تكوين ساعة النظام للتردد الأقصى.
  2. ميناء LL السابقينampعلى:
    • انسخ/ألصق المجلد Templates_LL – للاحتفاظ بالمصدر الأولي – أو قم بتحديث مشروع Templates_LL الحالي مباشرةً.
    • ثم، يتكون النقل بشكل أساسي من استبدال Templates_LL fileق من قبل السابقينamples_LL المشروع المستهدف.
    • احتفظ بجميع الأجزاء المحددة للوحة. ولأسباب الوضوح، يتم وضع علامة على أجزاء معينة من اللوحة بعلامات محددة tags:
      حزمة برامج STM32WL3x (1)

وبالتالي فإن خطوات النقل الرئيسية هي كما يلي:

  • استبدل stm32wl3x_it.h file.
  • استبدال stm32wl3x_it.c file.
  • استبدال main.h file وقم بتحديثه: احتفظ بتعريف زر LED وزر المستخدم لقالب LL ضمن التكوين الخاص باللوحة tags.
  • استبدل main.c file وتحديثه:
  • احتفظ بتكوين الساعة لوظيفة قالب SystemClock_Config() LL ضمن BOARD SPECIFIC CONFIGURATION tags.
  • اعتمادًا على تعريف LED، استبدل كل حدوث LDx بـ LDy آخر متاح في file الرئيسية.ح.

مع هذه التعديلات، السابقينampيتم تشغيله على اللوحة المستهدفة.

تطبيقات الترددات اللاسلكية والعروض التوضيحية والتجاربampليه
أنواع مختلفة من تطبيقات التردد اللاسلكي والعروض التوضيحية والتجاربampتتوفر هذه العناصر في حزمة STM32CubeWL3. وهي مدرجة في القسمين أدناه.

فرعي جيجاهرتزampالعروض والمظاهرات
هؤلاء السابقينampتوضح هذه الصور الميزات الرئيسية للأجهزة الطرفية اللاسلكية MRSUBG وLPAWUR.ampالملفات متاحة تحت:

  • المشاريع\NUCLEO-WL33CC\Examples_MRSUBG ليز_MRSUBG
  • المشاريع\NUCLEO-WL33CC\Examples_LPAWUR ليه
  • المشاريع\NUCLEO-WL33CC\العروض التوضيحية\MRSUBG
  • المشاريع\NUCLEO-WL33CC\العروض التوضيحية\LPAWUR

كل مثالampيتكون العرض التوضيحي بشكل عام من برنامجين يسميان 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: مثال سابقampملف يوضح كيفية التبديل من Databuffer 0 إلى 1.
    • MRSUBG_Sequencer AutoAck: مثال سابقampالملف الذي يرسل ويستقبل إقرارات الحزمة (ACKs) تلقائيًا.
    • MRSUBG_WMBusSTD: تبادل رسائل WM-Bus.
    • WakeupRadio: سابقampلاختبار جهاز الراديو المحيطي LPAWUR.
  • المظاهرات/MRSUBG
    • MRSUBG_RTC_Button_TX: هذا الزر السابقampيوضح هذا الشكل كيفية ضبط نظام SoC في وضع التوقف العميق وتكوين MRSUBG لإيقاظ نظام SoC بالضغط على PB2 لإرسال إطار أو بعد انتهاء مؤقت RTC.
    • MRSUBG_Sequencer_Sniff: هذاampيوضح هذا الفيديو كيفية ضبط جهاز تسلسل MRSUBG للعمل في وضع الشم.ampيوضح هذا الجزء جانب المستقبل ويتطلب جهازًا آخر كجهاز إرسال.
    • MRSUBG_Timer: يقوم التطبيق بجدولة عدة حالات من مؤقت MRSUBG (مع إعادة التحميل التلقائي) بفترات زمنية مختلفة.
    • MRSUBG_WakeupRadio_Tx: هذا السابقampيوضح هذا المقال كيفية ضبط نظام SoC في وضع التوقف العميق وتكوين MRSUBG لإيقاظ نظام SoC بالضغط على PB2 لإرسال إطار.ampيوضح هذا الجزء جانب المرسل ويتطلب جهازًا آخر كمستقبل LPAWUR.ampيقع الملف le ضمن المجلد NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
  • المظاهرات/LPAWUR
    • LPAWUR_WakeupRadio_Rx: هذا السابقampيوضح هذا المقال كيفية ضبط نظام SoC في وضع التوقف العميق وتكوين LPAWUR لإيقاظ نظام SoC عند وصول إطار واستلامه بشكل صحيح.ampيوضح هذا الجزء جانب المستقبل ويتطلب جهازًا آخر كجهاز إرسال.ampيقع الملف le ضمن المجلد NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.

تطبيق Sigfox™
توضح هذه التطبيقات كيفية تنفيذ سيناريو Sigfox™ واستخدام واجهات برمجة تطبيقات Sigfox™ المتاحة. وهي متاحة في مسار المشروع Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: يوضح هذا التطبيق كيفية استخدام واجهة سطر الأوامر (CLI) لإرسال الأوامر التي تستخدم بروتوكول Sigfox™ لإرسال الرسائل وإجراء اختبارات ما قبل الاعتماد.
  • Sigfox_PushButton: يسمح هذا التطبيق بتقييم قدرات جهاز STM32WL33xx Sigfox™ اللاسلكي. يؤدي الضغط على PB1 إلى إرسال إطار اختبار Sigfox™.

التعليمات

  1. متى يجب علي استخدام برامج تشغيل HAL بدلاً من LL؟
    توفر برامج تشغيل HAL واجهات برمجة تطبيقات عالية المستوى وموجهة نحو الوظائف، مع مستوى عالٍ من قابلية النقل. يتم إخفاء تعقيد المنتج أو الجهاز الطرفي للمستخدمين النهائيين.
    توفر برامج تشغيل LL واجهات برمجة التطبيقات (API) ذات مستوى التسجيل المنخفض، مع تحسين أفضل ولكن أقل قابلية للنقل. وهي تتطلب معرفة متعمقة بمواصفات المنتج أو IP.
  2. هل يمكن استخدام برامج التشغيل HAL وLL معًا؟ إذا كانت الإجابة بنعم، ما هي القيود؟
    من الممكن استخدام برامج تشغيل HAL وLL. استخدم HAL لمرحلة تهيئة الأجهزة الطرفية ثم قم بإدارة عمليات الإدخال/الإخراج باستخدام برامج تشغيل LL.
    الفرق الرئيسي بين HAL وLL هو أن برامج تشغيل HAL تتطلب إنشاء واستخدام مقابض لإدارة العمليات بينما تعمل برامج تشغيل LL مباشرة على السجلات الطرفية. يتم توضيح خلط HAL وLL في Examples_MIX على سبيل المثالampليز.
  3. كيف يتم تمكين واجهات برمجة تطبيقات تهيئة LL؟
    يتم تحديد واجهات برمجة تطبيقات تهيئة LL والموارد المرتبطة بها (الهياكل، والحروف، والنماذج الأولية) بواسطة مفتاح التجميع USE_FULL_LL_DRIVER.
    لتتمكن من استخدام واجهات برمجة التطبيقات (APIs) للتهيئة LL، قم بإضافة رمز التبديل هذا في المعالج المسبق لبرنامج التحويل البرمجي لسلسلة الأدوات.
  4. هل يوجد أي مشروع نموذجي لـ MRSUBG/LPAWUR الطرفي؟ampليز؟
    لإنشاء ملف MRSUBG أو LPAWUR جديدampالمشروع، إما أن يبدأ من مشروع الهيكل العظمي المقدم تحت \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG أو \Projects\NUCLEO-WL33CC\Examples\LPAWUR، أو من أي مشروع متاح ضمن نفس الدلائل.
  5. كيف يمكن لـ STM32CubeMX إنشاء تعليمات برمجية بناءً على البرامج المضمنة؟
    يتمتع STM32CubeMX بمعرفة مدمجة بوحدات التحكم الدقيقة STM32، بما في ذلك الأجهزة الطرفية والبرامج الخاصة بها، مما يسمح له بتقديم تمثيل رسومي للمستخدم وإنشاء *.h أو *.c fileيعتمد على تكوين المستخدم.

تاريخ المراجعة

الجدول 3. تاريخ مراجعة الوثيقة

تاريخ المراجعة التغييرات
29-مارس-2024 1 الإصدار الأولي.
30 أكتوبر 2024 2 التكامل الكامل لـ مكعب STM32WL3 in STM32مكعب. تم التحديث:

تمت الإزالة:

  • أدوات الكمبيوتر، مشتمل الملاح, واجهة المستخدم الرسومية STM32WL3، و واجهة المستخدم الرسومية لجهاز التسلسل MR-SUBG
  • كيف يمكن لـ WiSE-Studio IOMapper إنشاء كود يعتمد على برنامج مضمن؟
  • هل يسمح Navigator بالوصول إلى موارد حزمة البرامج؟

المستندات / الموارد

حزمة برامج ST STM32WL3x [بي دي اف] تعليمات
حزمة برامج STM32WL3x، STM32WL3x، حزمة برامج، حزمة

مراجع

اترك تعليقا

لن يتم نشر عنوان بريدك الإلكتروني. تم وضع علامة على الحقول المطلوبة *