STM32WL3x Software Package

Spesifikaasjes
- Produkt Namme: STM32CubeWL3 software pakket
- Kompatibiliteit: STM32WL3x mikrocontrollers
- Haadfunksjes:
- Low-laach (LL) en hardware abstraksje laach (HAL) APIs
- SigfoxTM, FatFS, en FreeRTOSTM kernel middleware komponinten
- Applikaasjes en demonstraasjes
Produkt Usage Ynstruksjes
Getting Started
Om it STM32CubeWL3-softwarepakket te brûken, folgje dizze stappen:
- Download it softwarepakket fan 'e offisjele website.
- Ynstallearje de nedige ûntwikkeling omjouwing (bgl. STM32CubeIDE, EWARM, MDK-ARM).
- Ferwize nei de eksamples en applikaasjes foarsjoen foar begelieding.
STM32CubeWL3 Architecture Overview
It softwarepakket STM32CubeWL3 is boud om trije haadnivo's
- Nivo 0: Hardwareabstraksjelaach (HAL) en BSP-bestjoerders.
- Nivo 1: Applikaasjes, biblioteken en protokol-basearre komponinten.
Faak stelde fragen (FAQ)
F: Wat binne de haadfunksjes fan it STM32CubeWL3-softwarepakket?
A: De haadfunksjes omfetsje leechlaach en HAL API's, middleware-komponinten lykas SigfoxTM, FatFS, FreeRTOSTM-kernel, applikaasjes en demonstraasjes.
Ynlieding
STM32Cube is in orizjineel inisjatyf fan STMicroelectronics om de produktiviteit fan ûntwerper signifikant te ferbetterjen troch ûntwikkelingspoging, tiid en kosten te ferminderjen. STM32Cube beslacht de hiele STM32-portefúlje.
STM32Cube omfettet:
- In set brûkerfreonlike ark foar softwareûntwikkeling om projektûntwikkeling te dekken fan konsepsje oant realisaasje, ûnder] dy't binne:
- STM32CubeMX, in grafysk softwarekonfiguraasjeark dat de automatyske generaasje fan C-initialisearringskoade mooglik makket mei grafyske wizards
- STM32CubeIDE, in alles-yn-ien ûntwikkelingsark mei perifeare konfiguraasje, koade generaasje, koade kompilaasje, en debug funksjes
- STM32CubeCLT, in alles-yn-ien ark foar kommando-rigelûntwikkeling mei koade-kompilaasje, boardprogrammearring en debugfunksjes
- STM32CubeProgrammer (STM32CubeProg), in programmearring ark beskikber yn grafyske en kommando-rigel ferzjes
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), krêftige monitoaringsark om it gedrach en prestaasjes fan STM32-applikaasjes yn realtime te fine-tunen
- STM32Cube MCU- en MPU-pakketten, wiidweidige platfoarms foar ynbêde software spesifyk foar elke mikrocontroller- en mikroprosessor-searje (lykas STM32CubeWL3 foar de STM32WL3x-produktline), dy't omfetsje:
- STM32Cube hardwareabstraksjelaach (HAL), soarget foar maksimale portabiliteit oer de STM32-portefúlje
- STM32Cube leechlaach API's, soargje foar de bêste prestaasjes en fuotprinten mei in hege graad fan brûkerskontrôle oer] hardware
- In konsekwinte set fan middleware-komponinten lykas FreeRTOS™ kernel, FatFS, en Sigfox™
- Alle ynbêde softwareprogramma's mei folsleine sets fan perifeare en tapassing examples
- STM32Cube-útwreidingspakketten, dy't ynbêde softwarekomponinten befetsje dy't de funksjonaliteiten fan 'e STM32Cube MCU- en MPU-pakketten oanfolje mei:
-
- Middleware tafoegings en tapassing lagen
- Examples rinne op guon spesifike STMicroelectronics ûntwikkeling boards
Dizze brûker hantlieding beskriuwt hoe te begjinnen mei it STM32CubeWL3 MCU Package.
Seksje 2 beskriuwt de haadfunksjes fan STM32CubeWL3 en seksje 3 jout in oerview fan har arsjitektuer en fan 'e MCU-pakketstruktuer.
Algemiene ynformaasje
STM32CubeWL3 rint sub-GHz demonstraasjeapplikaasjes, ynklusyf Sigfox ™ binaries, op STM32WL3x produktline mikrocontrollers basearre op de Arm® Cortex®-M0+ prosessor.
De STM32WL3x mikrocontrollers ynbêde STMicroelectronics's state-of-the-art sub-GHz-kompatibele RF-radio perifeare apparaat yn, optimalisearre foar ultra-leech enerzjyferbrûk en poerbêste radioprestaasjes, foar unparallele batterijlibben.
Noat: Arm is in registrearre hannelsmerk fan Arm Limited (of har dochterûndernimmingen) yn 'e FS en / of earne oars.
STM32CubeWL3 haadfunksjes
- It STM32CubeWL3 MCU-pakket rint op STM32 32-bit mikrocontrollers basearre op de Arm® Cortex®‑M0+ prosessor. It sammelet, yn ien pakket, alle generyske ynbêde softwarekomponinten dy't nedich binne om in applikaasje te ûntwikkeljen foar de STM32WL3x-produktline-mikrocontrollers.
- It pakket omfettet API's foar leechlaach (LL) en hardwareabstraksjelaach (HAL) dy't de hardware fan 'e mikrocontroller bedekke, tegearre mei in wiidweidige set fan eks.amples rinne op STMicroelectronics boards. De HAL- en LL API's binne beskikber yn in iepen boarne BSD-lisinsje foar brûkersgemak. It omfettet ek de Sigfox™, FatFS, en FreeRTOS™ kernel-middleware-komponinten.
- It STM32CubeWL3 MCU-pakket biedt ek ferskate applikaasjes en demonstraasjes dy't al har middleware-komponinten ymplementearje.
- De STM32CubeWL3 MCU-pakketkomponint-yndieling wurdt yllustrearre yn figuer 1.
figuer 1. STM32CubeWL3 MCU Package komponinten

STM32CubeWL3 arsjitektuer oerview
De STM32CubeWL3 MCU-pakketoplossing is boud om trije ûnôfhinklike nivo's dy't maklik ynteraksje lykas beskreaun yn figuer 2.
Nivo 0
Dit nivo is ferdield yn trije sublagen:
- Board Support Package (BSP).
- Hardwareabstraksjelaach (HAL):
- HAL perifeare bestjoerders
- Leech-laach bestjoerders
- Basis perifeare gebrûk bglamples.
Board Support Package (BSP)
Dizze laach biedt in set fan API's relatyf oan de hardwarekomponinten yn 'e hardwareboards (lykas LED's, knoppen en COM-bestjoerders). It is gearstald út twa dielen:
- Komponint:
Dit is de bestjoerder relatyf oan it eksterne apparaat op it boerd en net foar de STM32. De komponintbestjoerder leveret spesifike API's oan de eksterne komponinten fan 'e BSP-bestjoerder en kin draachber wêze op elk oar boerd. - BSP bestjoerder:
It makket it mooglik om de komponintbestjoerders te keppeljen oan in spesifyk boerd en biedt in set fan brûkerfreonlike API's. De API-nammeregel is BSP_FUNCT_Action ().
Example: BSP_LED_Init(), BSP_LED_On()
BSP is basearre op in modulêre arsjitektuer wêrtroch maklik portearjen op elke hardware mooglik is troch gewoan de routines op leech nivo te ymplementearjen.
Hardwareabstraksjelaach (HAL) en leechlaach (LL)
De STM32CubeWL3 HAL en LL binne komplemintêr en dekke in breed oanbod fan tapassingseasken:
- De HAL-bestjoerders biede funksje-oriïntearre heechweardige heech draachbere API's. Se ferbergje de MCU en perifeare kompleksiteit foar de einbrûker.
De HAL-bestjoerders leverje generyske funksje-oriïntearre API's mei meardere eksimplaren, dy't de ymplemintaasje fan brûkersapplikaasje ferienfâldigje troch it leverjen fan klearebare prosessen. Bygelyksample, foar de kommunikaasje perifeare apparaten (I2C, UART, en oare), it jout APIs wêrtroch inisjalisaasje en konfiguraasje fan de perifeare apparaten, behear fan gegevens oerdracht basearre op polling, ûnderbrekke of DMA proses, en it behanneljen fan kommunikaasje flaters dy't kinne ûntstean ûnder kommunikaasje. De HAL-bestjoerder-API's binne ferdield yn twa kategoryen:
- Generyske API's, dy't mienskiplike en generike funksjes leverje oan alle mikrocontrollers fan 'e STM32-searje.
- Extension APIs, dy't spesifike en oanpaste funksjes leverje foar in spesifike famylje of in spesifyk dielnûmer.
- De leechlaach API's leverje API's op leech nivo op registernivo, mei bettere optimalisaasje, mar minder portabiliteit. Se fereaskje in djippe kennis fan 'e MCU en perifeare spesifikaasjes.
De LL-bestjoerders binne ûntworpen om in rappe lichtgewicht saakkundich rjochte laach oan te bieden dy't tichter by de hardware is dan de HAL. Yn tsjinstelling ta de HAL wurde LL API's net foarsjoen foar perifeare apparaten wêr't optimalisearre tagong gjin kaaifunksje is, of foar dyjingen dy't swiere softwarekonfiguraasje of komplekse stapel op boppeste nivo nedich binne.
De LL-bestjoerders hawwe:
- In set fan funksjes om perifeare haadfunksjes te inisjalisearjen neffens de parameters spesifisearre yn gegevensstruktueren.
- In set fan funksjes foar it foljen fan inisjalisaasjegegevensstruktueren mei de resetwearden dy't oerienkomme mei elk fjild.
- Funksje foar perifeare de-initialisaasje (perifeare registers werombrocht nei har standertwearden).
- In set fan ynline funksjes foar direkte en atoomregister tagong.
- Folsleine ûnôfhinklikens fan HAL en mooglikheid om te brûken yn standalone modus (sûnder HAL-bestjoerders).
- Folsleine dekking fan de stipe perifeare funksjes.
Basis perifeare gebrûk bglamples
Dizze laach omfettet de eksamples boud oer de STM32-perifeare apparaten mei allinich de HAL- en BSP-boarnen.
Demonstraasje bvamples binne ek beskikber om mear komplekse eksample senario's mei spesifike perifeare apparaten, lykas de MRSUBG en LPAWUR.
Nivo 1
Dit nivo is ferdield yn twa sublagen:
- Middleware komponinten
- Examples basearre op de middleware komponinten
Middleware komponinten
De middleware is in set fan bibleteken dy't de FreeRTOS™ kernel, FatFS, en Sigfox™ protokolbibleteek dekke. Horizontale ynteraksje tusken de komponinten fan dizze laach wurdt dien troch de oantsjutte API's te roppen.
Fertikale ynteraksje mei de lege-laach bestjoerders wurdt dien troch spesifike callbacks en statyske makros útfierd yn de bibleteek systeem call ynterface.
De haadfunksjes fan elke middleware-komponint binne as folget:
- FreeRTOS ™ kernel: ymplemintearret in real-time bestjoeringssysteem (RTOS), ûntworpen foar ynbêde systemen.
- Sigfox™: ymplemintearret de Sigfox™-protokolbibleteek yn oerienstimming mei it Sigfox™-protokolnetwurk en omfettet de RF-testprotokolbibleteek om te testen tsjin RF Sigfox™-ark.
- FatFS: ymplemintearret de generike FAT file systeem module.
Examples basearre op de middleware komponinten
Elke middleware-komponint komt mei ien of mear eksamples, ek wol applikaasjes neamd, sjen litte hoe't jo it brûke. Yntegraasje bvampLes dy't ferskate middleware-komponinten brûke, wurde ek levere.
STM32CubeWL3 firmware pakket oerview
Stipe STM32WL3x-apparaten en hardware
STM32Cube biedt in heul draachbere hardwareabstraksjelaach (HAL) boud om in generike arsjitektuer. It lit it prinsipe fan opbou-op-lagen mooglik meitsje, lykas it brûken fan de middleware-laach om har funksjes út te fieren sûnder yngeand te witten wat MCU wurdt brûkt. Dit ferbettert de werbrûkberens fan 'e biblioteekkoade en soarget foar maklike portabiliteit nei oare apparaten.
- Derneist, mei syn lagene arsjitektuer, biedt STM32CubeWL3 folsleine stipe foar alle STM32WL3x-produktline.
- De brûker moat allinnich definiearje it rjocht makro yn stm32wl3x.h.
Tabel 1 toant de makro te definiearjen ôfhinklik fan de STM32WL3x produkt line apparaat brûkt. Dizze makro moat ek definieare wurde yn 'e kompilerfoarferwurker.
tabel 1. Makro's foar STM32WL3x produkt line
| Makro definiearre yn stm32wl3x.h | STM32WL3x produkt line apparaten |
| stm32wl33 | STM32WL33xx mikrocontrollers |
STM32CubeWL3 hat in rike set fan eksamples en applikaasjes op alle nivo's, wêrtroch't it maklik is om alle HAL-bestjoerder of middleware-komponinten te begripen en te brûken. Dizze eksamples rinne op de STMicroelectronics-boerden neamd yn Tabel 2.
| Board | STM32WL3x board stipe apparaten |
| NUCLEO-WL33CC1 | STM32WL33CC |
| NUCLEO-WL33CC2 | STM32WL33CC |
It STM32CubeWL3 MCU-pakket kin rinne op elke kompatibele hardware. De brûkers fernije gewoan de BSP-bestjoerders om de levere eksamples op harren boards, as dizze hawwe deselde hardware funksjes (lykas LEDs of knoppen).
Firmware pakket oerview
De oplossing foar STM32CubeWL3 MCU-pakket wurdt levere yn ien inkeld zip-pakket mei de struktuer werjûn yn figuer 3.
figuer 3. STM32CubeWL3 firmware pakket struktuer

Foarsichtigens:
De brûker moat de komponinten net wizigje files. De brûker kin allinich de \Projects-boarnen bewurkje.
Foar elk boerd, in set fan eksamples wurdt foarsjoen fan foarôf ynstelde projekten foar de EWARM, MDK-ARM, en STM32CubeIDE toolchains.
Figuer 4 toant de projektstruktuer foar de NUCLEO-WL33CCx boards. 
De eksamples wurde klassifisearre ôfhinklik fan it STM32CubeWL3-nivo wêrop se tapasse. Se wurde neamd as folget:
- Nivo 0 examples wurde neamd Examples, eksamples_LL, en Examples_MIX. Se brûke respektivelik HAL-bestjoerders, LL-bestjoerders, en in miks fan HAL- en LL-bestjoerders sûnder ienige middleware-komponint. Demonstraasje bvamples binne ek beskikber.
- Nivo 1 examples wurde neamd Applications. Se jouwe typyske gebrûksgefallen fan elke middleware-komponint.
Elke firmware-applikaasje foar in opjûn boerd kin fluch boud wurde mei de sjabloanprojekten dy't beskikber binne yn 'e Templ ates en Templates_LL-mappen.
Examples, eksamples_LL, en Examples_MIX hawwe deselde struktuer:
- \ Inc map mei alle koptekst files.
- \Src map mei de boarnekoade.
- \EWARM, \MDK-ARM, en \STM32CubeIDE-mappen dy't it foarôf ynstelde projekt foar elke toolchain befetsje.
- readme.md en readme.html beskriuwe de eksample gedrach en nedige omjouwing om it wurk te meitsjen.
Te begjinnen mei STM32CubeWL3
It útfieren fan in earste eksample
Dizze seksje ferklearret hoe ienfâldich it is om in earste eks út te fierenample binnen STM32CubeWL3. It brûkt as yllustraasje de generaasje fan in ienfâldige LED-skeakel dy't rint op it NUCLEO-WL33CC1-boerd:
- Download it STM32CubeWL3 MCU-pakket.
- Unzip it, of útfiere de ynstallearder as foarsjoen, yn in map fan jo kar.
- Soargje derfoar dat it pakketstruktuer net wizige wurdt werjûn yn figuer 3. STM32CubeWL3 firmwarepakketstruktuer. Tink derom dat it ek oan te rieden is om it pakket te kopiearjen op in lokaasje tichtby it root-folume (betsjuttend C:\ST of G:\Tests), om't guon IDE's problemen tsjinkomme as it paad te lang is.
Hoe kinne jo in HAL eks útfiereample
Foardat it laden en útfieren fan in eksample, it is sterk oan te rieden om te lêzen de eksamplês my file foar elke spesifike konfiguraasje.
- Blêdzje nei \Projects\NUCLEO-WL33CC\Examples.
- Iepenje de \GPIO, dan \GPIO_EXTI-mappen.
- Iepenje it projekt mei de foarkar toolchain. In fluch oerview oer hoe't jo in eks iepenje, bouwe en útfiereample mei de stipe toolchains wurdt jûn hjirûnder.
- Alles wer opbouwe files en lade de ôfbylding yn it doel ûnthâld.
- Run de eksample. Foar mear details, ferwize nei de eksamplês my file.
Om in eks te iepenjen, te bouwen en út te fierenample mei elk fan 'e stipe toolchains, folgje de stappen hjirûnder:
- EWARM:
- Under de eksamples map, iepenje de \ EWARM submap.
- Start de Project.eww wurkromte (de wurkromte namme kin feroarje fan ien example nei in oar).
- Alles wer opbouwe files: [Projekt]>[Alles opnij opbouwe].
- Laad de projektôfbylding: [Project]> [Debug].
- Run it programma: [Debug]> [Gean (F5)].
- MDK-ARM:
- Under de eksamples map, iepenje de \MDK-ARM submap.
- Iepenje de Project.uvproj wurkromte (de wurkromte namme kin feroarje fan ien example nei in oar).
- Alles wer opbouwe files: [Projekt]> [Alle doelen opnij opbouwe files].
- Laad de projektôfbylding: [Debug]>[Debug-sesje begjinne/stopje].
- Run it programma: [Debug]> [Run (F5)].
- STM32 CubeIDE:
- Iepenje de STM32CubeIDE toolchain.
- Klik op [File]>[Wurkromte wikselje]>[Oar] en blêdzje nei de STM32CubeIDE-wurkromtemap.
- Klik op [File]>[Ymportearje], selektearje [Algemien]>[Besteande projekten yn wurkromte], en klik dan op [Folgjende].
- Blêdzje nei de STM32CubeIDE-wurkromtemap en selektearje it projekt.
- Werombouwe alle projekt files: Selektearje it projekt yn it Project Explorer finster en klik dan op de
[Projekt]>[Build projekt] menu. - Run it programma: [Run]>[Debug (F11)].
It ûntwikkeljen fan in oanpaste applikaasje
STM32CubeMX brûke om in applikaasje te ûntwikkeljen of te aktualisearjen
Yn it STM32Cube MCU-pakket, hast alle projekten eksamples wurde generearre mei it STM32CubeMX-ark om it systeem, perifeare apparaten en middleware te inisjalisearjen.
It direkte gebrûk fan in besteand projekt bglample fan it STM32CubeMX-ark fereasket STM32CubeMX 6.12.0 of heger:
- Nei de ynstallaasje fan STM32CubeMX, iepenje en as it nedich is in foarsteld projekt bywurkje.
De ienfâldichste manier om in besteand projekt te iepenjen is troch te dûbelklikken op de *.ioc file sadat STM32CubeMX automatysk it projekt en syn boarne iepenet files. STM32CubeMX genereart de inisjalisaasjeboarnekoade fan sokke projekten. - De boarnekoade fan 'e haadapplikaasje wurdt befette troch de opmerkingen "USER CODE BEGIN" en "USER CODE END". As de perifeare seleksje en ynstellings wurde wizige, fernijt STM32CubeMX it inisjalisaasjediel fan 'e koade, wylst de haadapplikaasjeboarnekoade behâldt.
Om in oanpast projekt te ûntwikkeljen mei STM32CubeMX, folgje it stap-foar-stap proses:
- Konfigurearje alle fereaske ynbêde software mei in pinout-konfliktoplosser, in helper foar ynstelling fan klokbeam, in rekkenmasine foar enerzjyferbrûk, en it hulpprogramma dat MCU perifeare konfiguraasje útfiert (lykas GPIO of USART).
- Generearje de inisjalisaasje C-koade basearre op de selektearre konfiguraasje. Dizze koade is klear om te brûken binnen ferskate ûntwikkelingsomjouwings. De brûker koade wurdt hâlden by de folgjende koade generaasje.
Foar mear ynformaasje oer STM32CubeMX, ferwize nei de brûker hânboek STM32CubeMX foar STM32 konfiguraasje en inisjalisaasje C koade generaasje (UM1718).
Driver applikaasjes
HAL applikaasje
Dizze seksje beskriuwt de stappen dy't nedich binne om in oanpaste HAL-applikaasje te meitsjen mei STM32CubeWL3:
- Meitsje in projekt
Om in nij projekt te meitsjen, begjin of fanút it sjabloanprojekt dat foar elk boerd is foarsjoen ûnder \Projects\< STM32xxx_yyy>\Templates of fan elk beskikber projekt ûnder \Projects\ \bglampl es of \Projects\ \Applikaasjes (wêr ferwiist nei de namme fan it bestjoer). It sjabloanprojekt leveret in lege haadloopfunksje. It is lykwols in goed begjinpunt om de STM32CubeWL32-projektynstellingen te begripen. It sjabloan hat de folgjende skaaimerken:- It befettet de HAL-boarnekoade, CMSIS en BSP-bestjoerders, dy't de minimale set fan komponinten binne dy't nedich binne om in koade op in opjûne boerd te ûntwikkeljen.
- It befettet de ynbegrepen paden foar alle firmware-komponinten.
- It definiearret de stipe STM32WL3x-produktline-apparaten, wêrtroch de CMSIS- en HAL-bestjoerders goed kinne wurde konfigureare.
- It biedt brûker klear om te brûken files foarôf konfigureare lykas hjirûnder werjûn:
- HAL inisjalisearre mei de standert tiidbasis mei de Arm®-kearn SysTick.
- SysTick ISR ymplementearre foar HAL_Delay () doel.
Opmerking: As jo in besteand projekt kopiearje nei in oare lokaasje, soargje derfoar dat alle opnommen paden bywurke binne.
- Konfigurearje de firmware-komponinten
De HAL- en middleware-komponinten biede in set fan konfiguraasje-opsjes foar build-time mei makro's #define ferklearre yn in koptekst file. In sjabloan konfiguraasje file wurdt levere binnen elke komponint, dy't moat wurde kopieare nei de projektmap (meastentiids de konfiguraasje file wurdt xxx_conf_template.h neamd, moat it fragmint _template fuortsmiten wurde by it kopiearjen nei de projektmap). De konfiguraasje file jout genôch ynformaasje om de ynfloed fan elke konfiguraasjeopsje te begripen. Mear detaillearre ynformaasje is beskikber yn 'e dokumintaasje foar elke komponint. - Start de HAL-biblioteek
Nei it springen nei it haadprogramma moat de applikaasjekoade de HAL_Init() API neame om de HAL-bibleteek te inisjalisearjen, dy't de folgjende taken útfiert:- Konfiguraasje fan de flash ûnthâld prefetch en SysTick interrupt prioriteit (fia makro definiearre yn stm3 2wl3x_hal_conf.h).
- Konfiguraasje fan de SysTick foar it generearjen fan in ûnderbrekking elke millisekonde by de SysTick-ûnderbrekkingsprioriteit TICK_INT_PRIO definieare yn stm32wl3x_hal_conf.h.
- Ynstelle fan NVIC groep prioriteit op 0.
- Call of HAL_MspInit () callback funksje definiearre yn de stm32wl3x_hal_msp.c brûker file om globale hardware-initialisaasjes op leech nivo út te fieren.
- Konfigurearje de systeemklok
De systeemklokkonfiguraasje wurdt dien troch de twa hjirûnder beskreaune API's op te roppen:- HAL_RCC_OscConfig (): dizze API konfigurearret de ynterne en eksterne oscillators. De brûker kiest om ien of alle oscillators te konfigurearjen.
- HAL_RCC_ClockConfig(): dizze API konfigurearret de systeemklokboarne, de wachttiid foar flashgeheugen, en de AHB- en APB-prescalers.
- Inisjalisearje de perifeare
- Skriuw earst de perifeare inisjalisaasjefunksje. Gean sa fierder:
- Aktivearje de perifeare klok.
- Konfigurearje de perifeare GPIO's.
- Konfigurearje it DMA-kanaal en aktivearje de DMA-ûnderbrekking (as nedich).
- Aktivearje de perifeare ûnderbrekking (as nedich).
- Bewurkje de stm32xxx_it.c om de fereaske interrupt-behannelers (perifeare en DMA) op te roppen as nedich.
- Skriuw proses folsleine callback funksjes as in perifeare ûnderbrekking of DMA is bedoeld om te wurde brûkt.
- Yn de brûker main.c file, Inisjalisearje de perifeare handgreepstruktuer en neam dan de perifeare inisjalisaasjefunksje om it perifeare apparaat te inisjalisearjen.
- Untwikkelje in applikaasje
Op dizze stage, it systeem is klear en de ûntwikkeling fan brûkersapplikaasjekoade kin begjinne.
De HAL biedt yntuïtive en klear te brûken API's om it perifeare apparaat te konfigurearjen. It stipet polling, interrupts, en in DMA-programmearringmodel, om oan alle applikaasjeeasken te foldwaan. Foar mear details oer hoe't jo elke perifeare apparaat brûke, ferwize nei de rike eksample set levere yn it STM32CubeWL3 MCU-pakket.
Foarsichtigens:
Yn 'e standert HAL-ymplemintaasje wurdt de SysTick-timer brûkt as tiidbasis: it genereart ûnderbrekkingen op reguliere tiidintervallen. As HAL_Delay () wurdt neamd út de perifeare ISR proses, soargje derfoar dat de SysTick ûnderbrekking hat in hegere prioriteit (numerike leger) as de perifeare ûnderbrekking. Oars, de beller ISR proses is
blokkearre. Funksjes dy't tiidbasiskonfiguraasjes beynfloedzje, wurde ferklearre as __swak om oerskriuwen mooglik te meitsjen yn gefal fan oare ymplemintaasjes yn 'e brûker file (mei in timer foar algemiene doelen, bygelyksample, of in oare tiid boarne).
Foar mear details, ferwize nei de HAL_TimeBase example.
LL applikaasje
Dizze seksje beskriuwt de stappen dy't nedich binne om in oanpaste LL-applikaasje te meitsjen mei STM32CubeWL3.
- Meitsje in projekt
Om in nij projekt te meitsjen, begjin dan fanút it Templates_LL-projekt dat foar elk boerd is levere ûnder \Projects\ \Templates_LL of fan elk beskikber projekt ûnder \Projects\ \E xamples_LL ( ferwiist nei de bestjoersnamme, lykas NUCLEO-WL32CC33).
It sjabloanprojekt jout in lege haadloopfunksje, dat is in goed begjinpunt om de projektynstellingen foar STM32CubeWL3 te begripen. De wichtichste skaaimerken fan 'e sjabloan binne de folgjende:- It befettet de boarne koades fan de LL- en CMSIS-bestjoerders, dy't de minimale set fan komponinten binne dy't nedich binne om de koade op in opjûne boerd te ûntwikkeljen.
- It befettet de ynbegrepen paden foar alle fereaske firmware-komponinten.
- It selekteart it stipe STM32WL3x-produktline-apparaat en lit de juste konfiguraasje fan 'e CMSIS- en LL-bestjoerders mooglik meitsje.
- It biedt brûker klear om te brûken files dy't as folget foarôf ynsteld binne:
- main.h: LED en USER_BUTTON definysje abstraksje laach.
- main.c: Systeem klok konfiguraasje foar maksimale frekwinsje.
- Port de LL example:
- Kopiearje / plakke de map Templates_LL - om de earste boarne te hâlden - of aktualisearje in besteande Templa tes_LL-projekt direkt.
- Dan bestiet it portearjen benammen yn it ferfangen fan Templates_LL files troch de eksamples_LL rjochte projekt.
- Hâld alle board spesifike dielen. Om redenen fan dúdlikens, board spesifike dielen wurde markearre mei spesifike tags:

Sa binne de wichtichste portingstappen de folgjende:
- Ferfange de stm32wl3x_it.h file.
- Ferfang de stm32wl3x_it.c file.
- Ferfange de main.h file en aktualisearje it: Hâld de LED- en brûkersknop-definysje fan it LL-sjabloan ûnder BOARD SPESIFIEKE KONFIGURASJE tags.
- Ferfange de main.c file en update it:
- Hâld de klokkonfiguraasje fan de SystemClock_Config() LL-sjabloanfunksje ûnder BOARD SPESIFIEKE KONFIGURASJE tags.
- Ofhinklik fan de LED definysje, ferfange eltse LDx foarkommen mei in oare LDy beskikber yn de file main.h.
Mei dizze oanpassings, de eksample rint op de doelgroep board.
RF-applikaasjes, demonstraasjes, en eksamples
Ferskillende soarten RF-tapassingen, demonstraasjes, en eksamples binne beskikber yn it pakket STM32CubeWL3. Se wurde neamd yn 'e twa seksjes hjirûnder.
Sub-GHz bglamples en demonstraasjes
Dizze eksamples demonstrearje de wichtichste skaaimerken fan de MRSUBG en LPAWUR radio perifeare apparaten. Dizze eksamples binne beskikber ûnder:
- Projekten\NUCLEO-WL33CC\Examples\MRSUBG
- Projekten\NUCLEO-WL33CC\Examples\LPAWUR
- Projekten\NUCLEO-WL33CC\Demonstraasjes\MRSUBG
- Projekten\NUCLEO-WL33CC\Demonstraasjes\LPAWUR
Elke eksample as demonstraasje bestiet yn 't algemien út twa programma's neamd Tx en Rx dy't fungearje as respektivelik as stjoerder en ûntfanger:
- Examples/MRSUBG
- MRSUBG_802_15_4: in ymplemintaasje fan de fysike laach definiearre troch de standert 802.15.4. It lit sjen hoe't jo de radio konfigurearje om 802.15.4-pakketten te ferstjoeren of te ûntfangen.
- MRSUBG_BasicGeneric: in útwikseling fan STM32WL3x MR_SUBG basispakketten.
- MRSUBG_Chat: In ienfâldige applikaasje dy't lit sjen hoe't jo Tx en Rx op itselde apparaat kinne brûke.
- MRSUBG_DatabufferHandler: In eksample dy't toant hoe't jo kinne wikselje fan Databuffer 0 en 1.
- MRSUBG_Sequencer AutoAck: In eksample dy't automatysk pakketbefêstigingen (ACK's) ferstjoert en ûntfangt.
- MRSUBG_WMBusSTD: In útwikseling fan WM-Bus-berjochten.
- WakeupRadio: In eksample om de LPAWUR radio perifeare te testen.
- Demonstraasjes / MRSUBG
- MRSUBG_RTC_Button_TX: Dizze eksample lit sjen hoe't jo de SoC yn djippe stopmodus ynstelle en de MRSUBG konfigurearje om de SoC te wekkerjen troch op PB2 te drukken om in frame te stjoeren of nei it ferrinnen fan de RTC-timer.
- MRSUBG_Sequencer_Sniff: Dizze eksample lit sjen hoe't jo de MRSUBG-sequencer ynstelle om te wurkjen yn sniffmodus. Dizze eksample toant de ûntfanger kant en fereasket in oar apparaat as in stjoerder.
- MRSUBG_Timer: De applikaasje plant ferskate eksimplaren fan MRSUBG-timer (mei autoreload) mei ferskate tiidintervallen.
- MRSUBG_WakeupRadio_Tx: Dizze eksample ferklearret hoe't jo de SoC yn 'e djippe stopmodus sette en de MRSUBG konfigurearje om de SoC te wekkerjen troch op PB2 te drukken om in frame te stjoeren. Dizze eksample toant de stjoerder kant en fereasket in oar apparaat as in LPAWUR ûntfanger. De ûntfanger eksample leit ûnder de map NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
- Demonstraasjes / LPAWUR
- LPAWUR_WakeupRadio_Rx: Dizze eksample ferklearret hoe't jo de SoC yn 'e djipstopmodus ynstelle en de LPAWUR konfigurearje om de SoC wekker te meitsjen as in frame oankomt en korrekt ûntfongen is. Dizze eksample toant de ûntfanger kant en fereasket in oar apparaat as in stjoerder. De stjoerder eksample leit ûnder de map NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.
Sigfox™ applikaasje
Dizze applikaasjes litte sjen hoe't jo in Sigfox™-senario kinne ymplementearje en de beskikbere Sigfox™ API's brûke. Se binne beskikber yn it projektpaad Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: Dizze applikaasje lit sjen hoe't jo in kommando-rigel-ynterface (CLI) brûke om kommando's te ferstjoeren dy't it Sigfox™-protokol brûke om berjochten te ferstjoeren en foarsertifikaasjetests út te fieren.
- Sigfox_PushButton: Dizze applikaasje lit de evaluaasje fan 'e STM32WL33xx Sigfox™-apparaat radiomooglikheden mooglik meitsje. Druk op PB1 stjoert in test Sigfox™ frame.
FAQ
- Wannear moat ik HAL brûke ynstee fan LL-bestjoerders?
HAL-bestjoerders biede API's op heech nivo en funksje-oriïntearre, mei in heech nivo fan portabiliteit. Produkt of perifeare kompleksiteit is ferburgen foar ein brûkers.
LL-bestjoerders biede API's op leechlaach registernivo, mei bettere optimalisaasje, mar minder draachber. Se fereaskje yngeande kennis fan produkt- as IP-spesifikaasjes. - Kinne HAL- en LL-bestjoerders tegearre wurde brûkt? As ja, wat binne de beheiningen?
It is mooglik om sawol HAL- as LL-bestjoerders te brûken. Brûk de HAL foar de perifeare inisjalisaasjefaze en beheare dan de I/O-operaasjes mei LL-bestjoerders.
It grutte ferskil tusken HAL en LL is dat HAL-bestjoerders nedich binne om hângrepen te meitsjen en te brûken foar operaasjebehear, wylst LL-bestjoerders direkt operearje op perifeare registers. It mingjen fan HAL en LL wurdt yllustrearre yn 'e Examples_MIX eksamples. - Hoe binne LL-initialisaasje-API's ynskeakele?
De definysje fan LL-initialisaasje-API's en byhearrende boarnen (struktueren, letterliken en prototypen) wurdt betingst troch de USE_FULL_LL_DRIVER-kompilaasjeskeakel.
Om LL-initialisaasje-API's te kinnen brûke, foegje dizze skeakel ta yn 'e toolchain-kompiler-preprocessor. - Is der in sjabloan projekt foar MRSUBG / LPAWUR perifeare examples?
Om in nije MRSUBG of LPAWUR example projekt, of begjin fan it skeletprojekt levere ûnder \ Pr ojects \ NUCLEO-WL33CC \ Examples\MRSUBG of \Projects\NUCLEO-WL33CC\Examples\LPAWUR, of fan elk beskikber projekt ûnder deselde mappen. - Hoe kin STM32CubeMX koade generearje basearre op ynbêde software?
STM32CubeMX hat in ynboude kennis fan STM32 microcontrollers, ynklusyf harren Peripheriegeräte en software, wêrtroch it in foarsjen grafyske foarstelling oan de brûker en generearje *.h of *.c files basearre op de brûker syn konfiguraasje.
Revision skiednis
Tabel 3. Document revyzje skiednis
| Datum | Revyzje | Feroarings |
| 29-Mar-2024 | 1 | Inisjele release. |
| 30-Oktober-2024 | 2 | Folsleine yntegraasje fan STM32CubeWL3 in STM32 Cube. Bywurke:
Fuortsmite:
|
Dokuminten / Resources
![]() |
ST STM32WL3x Software Package [pdfYnstruksjes STM32WL3x Software Package, STM32WL3x, Software Package, Pakket |





