חבילת תוכנה STM32WL3x

מפרטים
- שם המוצר: חבילת תוכנה STM32CubeWL3
- תאימות: מיקרו-בקרים STM32WL3x
- מאפיינים עיקריים:
- ממשקי API של שכבה נמוכה (LL) ושכבת הפשטת חומרה (HAL).
- רכיבי תוכנת הביניים של SigfoxTM, FatFS ו- FreeRTOSTM
- יישומים והדגמות
הוראות שימוש במוצר
תחילת העבודה
כדי להתחיל להשתמש בחבילת התוכנה STM32CubeWL3, בצע את השלבים הבאים:
- הורד את חבילת התוכנה מהגורם הרשמי webאֲתַר.
- התקן את סביבת הפיתוח הדרושה (למשל, STM32CubeIDE, EWARM, MDK-ARM).
- עיין באקסampמסמכים ויישומים ניתנים להדרכה.
ארכיטקטורת 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 בזמן אמת
- חבילות STM32Cube MCU ו-MPU, פלטפורמות תוכנה משובצות מקיפות ספציפיות לכל סדרת מיקרו-בקר ומיקרו-מעבד (כגון STM32CubeWL3 עבור קו המוצרים STM32WL3x), הכוללות:
- שכבת הפשטת החומרה STM32Cube (HAL), המבטיחה ניידות מרבית בכל תיק STM32
- ממשקי API בשכבה נמוכה של STM32Cube, המבטיחים את הביצועים והטביעות הטובות ביותר עם רמה גבוהה של שליטה על המשתמש בחומרה]
- קבוצה עקבית של רכיבי תווך כגון ליבת FreeRTOS™, FatFS ו- Sigfox™
- כל כלי התוכנה המשובצים עם סטים מלאים של ציוד היקפי ויישומיamples
- חבילות הרחבה STM32Cube, המכילות רכיבי תוכנה משובצים המשלימים את הפונקציונליות של חבילות STM32Cube MCU ו-MPU עם:
-
- הרחבות תוכנת אמצעית ושכבות יישומיות
- Exampאלה פועלים על כמה לוחות פיתוח ספציפיים של STMicroelectronics
מדריך למשתמש זה מתאר כיצד להתחיל עם חבילת STM32CubeWL3 MCU.
סעיף 2 מתאר את התכונות העיקריות של STM32CubeWL3 וסעיף 3 מספקview של הארכיטקטורה שלו ושל מבנה חבילת MCU.
מידע כללי
STM32CubeWL3 מריץ יישומי הדגמה של תת-GHz, כולל קבצים בינאריים של Sigfox™, על מיקרו-בקרי מוצר STM32WL3x המבוססים על מעבד Arm® Cortex®‑M0+.
המיקרו-בקרים STM32WL3x מטמיעים את ציוד היקפי RF RF תואם תת-GHz המתקדם של STMicroelectronics, מותאם לצריכת חשמל נמוכה במיוחד וביצועי רדיו מעולים, לחיי סוללה ללא תחרות.
פֶּתֶק: Arm הוא סימן מסחרי רשום של Arm Limited (או חברות הבת שלה) בארה"ב ו/או במקומות אחרים.
STM32CubeWL3 תכונות עיקריות
- חבילת MCU STM32CubeWL3 פועלת על מיקרו-בקרים STM32 32-bit המבוססים על מעבד Arm® Cortex®-M0+. הוא אוסף, בחבילה אחת, את כל רכיבי התוכנה המשובצים הגנריים הנדרשים לפיתוח אפליקציה עבור המיקרו-בקרים של קו המוצרים STM32WL3x.
- החבילה כוללת ממשקי API של שכבה נמוכה (LL) ושכבת אבסטרקציה של חומרה (HAL) המכסים את חומרת המיקרו-בקר, יחד עם סט נרחב של לשעברamples פועל על לוחות STMicroelectronics. ממשקי API של HAL ו-LL זמינים ברישיון BSD בקוד פתוח לנוחות המשתמש. הוא כולל גם את רכיבי התווך של ™Sigfox, FatFS ו- FreeRTOS™.
- חבילת ה-MCU STM32CubeWL3 מספקת גם מספר יישומים והדגמות המיישמות את כל רכיבי התווך שלה.
- פריסת רכיבי חבילת STM32CubeWL3 MCU מומחשת באיור 1.
איור 1. רכיבי חבילת STM32CubeWL3 MCU

ארכיטקטורת STM32CubeWL3 נגמרהview
פתרון חבילת STM32CubeWL3 MCU בנוי סביב שלוש רמות עצמאיות המתקשרות בקלות כמתואר באיור 2.
רמה 0
רמה זו מחולקת לשלוש שכבות משנה:
- חבילת תמיכה בלוח (BSP).
- שכבת הפשטת החומרה (HAL):
- דרייברים היקפיים של HAL
- דרייברים בשכבה נמוכה
- שימוש היקפי בסיסי למשלamples.
חבילת תמיכה בלוח (BSP)
שכבה זו מציעה קבוצה של ממשקי API ביחס לרכיבי החומרה בלוחות החומרה (כגון נוריות, לחצנים ומנהלי התקנים של 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 גנריים מרובים מופעים, אשר מפשטים את יישום יישום המשתמש על ידי מתן תהליכים מוכנים לשימוש. למשלample, עבור ציוד היקפי לתקשורת (I2C, UART ואחרים), הוא מספק ממשקי API המאפשרים אתחול וקביעת התצורה של הציוד ההיקפי, ניהול העברת נתונים על סמך תהליך סקר, הפרעה או DMA וטיפול בשגיאות תקשורת שעלולות להתעורר במהלך התקשורת. ממשקי ה-API של מנהלי ההתקן של HAL מחולקים לשתי קטגוריות:
- ממשקי API גנריים, המספקים פונקציות נפוצות וגנריות לכל המיקרו-בקרים מסדרת STM32.
- Extension APIs, המספקים פונקציות ספציפיות ומותאמות אישית למשפחה ספציפית או למספר חלק מסוים.
- ממשקי API בשכבה נמוכה מספקים ממשקי API ברמה נמוכה ברמת הרישום, עם אופטימיזציה טובה יותר אך פחות ניידות. הם דורשים ידע מעמיק ב-MCU ובמפרט ההיקפי.
הדרייברים של LL מתוכננים להציע שכבה קלה ומהירה מוכוונת מומחה הקרובה יותר לחומרה מאשר ה-HAL. בניגוד ל-HAL, ממשקי API של LL אינם מסופקים עבור ציוד היקפי שבהם גישה אופטימלית אינה תכונת מפתח, או עבור אלה הדורשים תצורת תוכנה כבדה או ערימה מורכבת ברמה העליונה.
תכונת הדרייברים של LL:
- קבוצה של פונקציות לאתחול תכונות עיקריות היקפיות בהתאם לפרמטרים המצוינים במבני נתונים.
- קבוצה של פונקציות למילוי מבני נתוני אתחול עם ערכי האיפוס המתאימים לכל שדה.
- פונקציה לדה-אתחול היקפי (אוגרים היקפיים שוחזרו לערכי ברירת המחדל שלהם).
- קבוצה של פונקציות מוטבעות לגישה ישירה לרישום אטומי.
- עצמאות מלאה מ-HAL ויכולת לשימוש במצב עצמאי (ללא דרייברים של HAL).
- כיסוי מלא של תכונות ההיקפי הנתמכות.
שימוש היקפי בסיסי למשלamples
שכבה זו מקיפה את האקסampקבצים שנבנו על ציוד היקפי STM32 תוך שימוש במשאבי HAL ו-BSP בלבד.
הדגמה לשעברampקבצים זמינים גם כדי להציג דוגמה מורכבת יותר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 כולל קבוצה עשירה של לשעברampקבצים ויישומים בכל הרמות, מה שמקל על ההבנה והשימוש בכל מנהל התקן של HAL או רכיבי תווך. האקסים האלהampאלה פועלים על לוחות STMicroelectronics המפורטים בטבלה 2.
| לוּחַ | מכשירים תומכים בלוח STM32WL3x |
| NUCLEO-WL33CC1 | STM32WL33CC |
| NUCLEO-WL33CC2 | STM32WL33CC |
חבילת STM32CubeWL3 MCU יכולה לפעול על כל חומרה תואמת. המשתמשים פשוט מעדכנים את מנהלי ההתקן של BSP כדי להעביר את האקס שסופקampקבצים על הלוחות שלהם, אם יש להם את אותן תכונות חומרה (כגון נוריות או כפתורים).
חבילת קושחה נגמרהview
פתרון חבילת STM32CubeWL3 MCU מסופק בחבילת zip אחת עם המבנה המוצג באיור 3.
איור 3. מבנה חבילת קושחה STM32CubeWL3

זְהִירוּת:
אסור למשתמש לשנות את הרכיבים fileס. המשתמש יכול לערוך רק את מקורות \Projects.
לכל לוח, סט של אקסamples מסופק עם פרויקטים מוגדרים מראש עבור שרשרות הכלים EWARM, MDK-ARM ו-STM32CubeIDE.
איור 4 מציג את מבנה הפרויקט עבור לוחות NUCLEO-WL33CCx. 
האקסיתampהנתונים מסווגים בהתאם לרמת STM32CubeWL3 שאליה הם חלים. הם נקראים כך:
- רמה 0 למשלamples נקראים Examples, Examples_LL, ו-Examples_MIX. הם משתמשים במנהלי התקן של HAL, מנהלי התקנים של LL, ושילוב של מנהלי התקנים של HAL ו-LL ללא כל רכיב תוכנת ביניים. הדגמה לשעברamples זמינים גם.
- רמה 1 למשלampאלה נקראים יישומים. הם מספקים מקרי שימוש טיפוסיים של כל רכיב בתווך.
ניתן לבנות במהירות כל יישום קושחה עבור לוח נתון באמצעות פרויקטי התבניות הזמינים בספריות Templ ates ו-Templates_LL.
Examples, Examples_LL, ו-Exampל-les_MIX יש את אותו מבנה:
- תיקיית \Inc המכילה את כל הכותרת files.
- תיקיית \Src המכילה את קוד המקור.
- תיקיות \EWARM, \MDK-ARM ו-\STM32CubeIDE המכילות את הפרוייקט המוגדר מראש עבור כל שרשרת כלים.
- readme.md ו-readme.html המתארים את האקסampההתנהגות והסביבה הדרושה כדי לגרום לזה לעבוד.
תחילת העבודה עם STM32CubeWL3
מפעיל אקס ראשוןample
חלק זה מסביר כמה פשוט להפעיל אקס ראשוןample בתוך STM32CubeWL3. הוא משתמש כהמחשה ביצירת בורר LED פשוט הפועל על לוח NUCLEO-WL33CC1:
- הורד את חבילת STM32CubeWL3 MCU.
- פתח אותו, או הפעל את תוכנית ההתקנה אם מסופק, לתוך ספרייה לבחירתך.
- הקפד לא לשנות את מבנה החבילה המוצג באיור 3. מבנה חבילת הקושחה STM32CubeWL3. שימו לב שמומלץ גם להעתיק את החבילה במיקום קרוב לנפח השורש (כלומר C:\ST או G:\Tests), מכיוון שחלק מה-IDEs נתקלים בבעיות כאשר הנתיב ארוך מדי.
איך להפעיל אקס HALample
לפני טעינה והפעלת אקסample, מומלץ מאוד לקרוא את האקסample readme file עבור כל תצורה ספציפית.
- דפדף אל \Projects\NUCLEO-WL33CC\Examples.
- פתח את התיקיות \GPIO ולאחר מכן את \GPIO_EXTI.
- פתח את הפרויקט עם שרשרת הכלים המועדפת. סיום מהירview כיצד לפתוח, לבנות ולהפעיל אקסampהקובץ עם שרשרת הכלים הנתמכת מובא להלן.
- לבנות הכל מחדש files וטען את התמונה לזיכרון היעד.
- הפעל את האקסample. לפרטים נוספים, עיין באקסample readme file.
כדי לפתוח, לבנות ולהפעיל אקסampעם כל אחד משרשרת הכלים הנתמכת, בצע את השלבים הבאים:
- EWARM:
- תחת האקסampתיקיית les, פתח את תיקיית המשנה \EWARM.
- הפעל את סביבת העבודה Project.eww (שם סביבת העבודה עשוי להשתנות מדוגמה אחתampלה לאחר).
- לבנות הכל מחדש files: [פרויקט]>[בנה הכל מחדש].
- טען את תמונת הפרויקט: [Project]>[Debug].
- הפעל את התוכנית: [Debug]>[Go (F5)].
- MDK-ARM:
- תחת האקסampתיקיית les, פתח את תיקיית המשנה \MDK-ARM.
- פתח את סביבת העבודה Project.uvproj (שם סביבת העבודה עשוי להשתנות מדוגמה אחתampלה לאחר).
- לבנות הכל מחדש files: [פרויקט]>[בנה מחדש את כל היעדים files].
- טען את תמונת הפרויקט: [Debug]>[Start/Stop Debug Session].
- הפעל את התוכנית: [Debug]>[Run (F5)].
- STM32CubeIDE:
- פתח את שרשרת הכלים STM32CubeIDE.
- לחץ על [File]>[החלף סביבת עבודה]>[אחר] ודפדף אל ספריית סביבת העבודה STM32CubeIDE.
- לחץ על [File]>[ייבא], בחר [כללי]>[פרויקטים קיימים אל סביבת העבודה], ולאחר מכן לחץ על [הבא].
- דפדף אל ספריית סביבת העבודה STM32CubeIDE ובחר את הפרויקט.
- לבנות מחדש את כל הפרויקט files: בחר את הפרויקט בחלון סייר הפרויקט ולאחר מכן לחץ על
תפריט [פרויקט]>[בניית פרויקט]. - הפעל את התוכנית: [Run]>[Debug (F11)].
פיתוח אפליקציה מותאמת אישית
שימוש ב-STM32CubeMX כדי לפתח או לעדכן אפליקציה
בחבילת STM32Cube MCU, כמעט כל הפרויקטים, למשלampתמונות נוצרות עם הכלי STM32CubeMX כדי לאתחל את המערכת, הציוד ההיקפי והתווך.
שימוש ישיר בפרויקט קיים, למשלample מכלי 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:
- צור פרויקט
כדי ליצור פרויקט חדש, התחל מפרויקט התבנית שסופק עבור כל לוח תחת \Projects\< STM32xxx_yyy>\Templates או מכל פרויקט זמין תחת \Projects\ \לְשֶׁעָבַרampאני או \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, יש להסיר את fragment _template בעת העתקתו לתיקיית הפרויקט). התצורה file מספק מספיק מידע כדי להבין את ההשפעה של כל אפשרות תצורה. מידע מפורט יותר זמין בתיעוד המסופק עבור כל רכיב. - הפעל את ספריית 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 לבצע אתחולי חומרה ברמה נמוכה גלובלית.
- הגדר את שעון המערכת
תצורת שעון המערכת מתבצעת על ידי קריאה לשני ממשקי ה-API המתוארים להלן:- HAL_RCC_OscConfig(): ממשק API זה מגדיר את המתנדים הפנימיים והחיצוניים. המשתמש בוחר להגדיר את המתנדים אחד או את כולם.
- HAL_RCC_ClockConfig(): ממשק API זה מגדיר את מקור השעון של המערכת, את זמן האחזור של זיכרון ההבזק ואת ה-prescaleers של AHB ו-APB.
- אתחל את הציוד ההיקפי
- תחילה כתוב את פונקציית האתחול ההיקפית. המשך כך:
- הפעל את השעון ההיקפי.
- הגדר את GPIOs ההיקפי.
- הגדר את ערוץ ה-DMA והפעל את הפסקת ה-DMA (במידת הצורך).
- אפשר את ההפסקה ההיקפית (במידת הצורך).
- ערוך את ה-stm32xxx_it.c כדי להתקשר למטפלי הפסיקות הנדרשים (פריפריאלי ו-DMA), במידת הצורך.
- כתיבת תהליך מלא של פונקציות התקשרות חוזרת אם נועדו להשתמש בפסיקה היקפית או DMA.
- ב-main.c של המשתמש file, אתחול מבנה הידית ההיקפית ואז קרא לפונקציית האתחול ההיקפי כדי לאתחל את הציוד ההיקפי.
- פתח אפליקציה
בס' זהtagה, המערכת מוכנה ופיתוח קוד יישומי משתמש יכול להתחיל.
ה-HAL מספק ממשקי API אינטואיטיביים ומוכנים לשימוש כדי להגדיר את הציוד ההיקפי. הוא תומך בסקר, פסיקות ומודל תכנות DMA, כדי להתאים לכל דרישות היישום. לפרטים נוספים על אופן השימוש בכל ציוד היקפי, עיין באקס העשירampהסט מסופק בחבילת STM32CubeWL3 MCU.
זְהִירוּת:
ביישום ברירת המחדל של HAL, טיימר SysTick משמש כבסיס זמן: הוא מייצר פסיקות במרווחי זמן קבועים. אם HAL_Delay() נקרא מתהליך ISR היקפי, ודא שלפסיקת SysTick יש עדיפות גבוהה יותר (נמוכה מספרית) מהפסיקה ההיקפית. אחרת, תהליך ISR המתקשר הוא
חָסוּם. פונקציות המשפיעות על תצורות בסיס זמן מוכרזות כ-__חלשות כדי לאפשר עקיפה במקרה של יישומים אחרים במשתמש file (באמצעות טיימר לשימוש כללי, למשלample, או מקור זמן אחר).
לפרטים נוספים, עיין בדוגמה של HAL_TimeBaseample.
יישום 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 exampעל:
- העתק/הדבק את התיקיה Templates_LL – כדי לשמור על המקור הראשוני – או עדכן ישירות פרויקט Templa tes_LL קיים.
- לאחר מכן, ההעברה מורכבת בעיקר מהחלפת Templates_LL fileשל האקסampפרויקט ממוקד 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, הדגמות, ועודampאלה זמינים בחבילת STM32CubeWL3. הם מפורטים בשני הסעיפים להלן.
תת-GHz למשלampהפגנות והפגנות
האקסים האלהampאלה מדגימים את המאפיינים העיקריים של ציוד הרדיו MRSUBG ו-LPAWUR. האקסים האלהamples זמינים תחת:
- פרויקטים\NUCLEO-WL33CC\Examples\MRSUBG
- פרויקטים\NUCLEO-WL33CC\Examples\LPAWUR
- Projects\NUCLEO-WL33CC\Demonstrations\MRSUBG
- Projects\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: לשעברample המשדר ומקבל אישורי מנות (ACKs) באופן אוטומטי.
- MRSUBG_WMBusSTD: חילופי הודעות WM-Bus.
- WakeupRadio: אקסampלבדיקת ציוד הרדיו LPAWUR.
- הפגנות/MRSUBG
- MRSUBG_RTC_Button_TX: דוגמה זוample מראה כיצד להגדיר את ה-SoC למצב עצירה עמוקה ולהגדיר את ה-MRSUBG להעיר את ה-SoC על ידי לחיצה על PB2 כדי לשלוח מסגרת או לאחר פקיעת טיימר ה-RTC.
- MRSUBG_Sequencer_Sniff: הדוגמה הזוample מראה כיצד להגדיר את רצף ה-MRSUBG לפעול במצב סניף. האקסית הזוample מדגים את הצד של המקלט ודורש התקן אחר בתור משדר.
- MRSUBG_Timer: היישום מתזמן מספר מופעים של טיימר MRUBG (עם טעינה אוטומטית) עם מרווחי זמן שונים.
- 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 מודגם ב-Examples_MIX examples. - כיצד מופעלים ממשקי API לאתחול LL?
ההגדרה של ממשקי API לאתחול LL ומשאבים קשורים (מבנים, מילוליות ואבות טיפוס) מותנית במתג ההידור USE_FULL_LL_DRIVER.
כדי להיות מסוגל להשתמש בממשקי API של אתחול LL, הוסף מתג זה במעבד הפרה-מעבד של מהדר הכלים. - האם יש פרויקט תבנית עבור MRSUBG/LPAWUR היקפי לשעברampלס?
ליצירת MRSUBG או LPAWUR חדש לשעברampלפרויקט, התחל מפרויקט השלד המסופק תחת \Pr ojects\NUCLEO-WL33CC\Examples\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, חבילת תוכנה, חבילה |





