STM32WL3x Microcontrollers
Produkt Usage Ynstruksjes
- It STM32CubeWL3-pakket befettet leechlaach (LL) en hardware-abstraksjelaach (HAL) API's dy't de mikrokontrollerhardware dekke.
- It leveret ek middleware-komponinten lykas SigfoxTM, FatFS, en FreeRTOS-kernel.
- It pakket wurdt levere mei eksamples en applikaasjes foar maklike ymplemintaasje.
- De STM32CubeWL3-arsjitektuer is boud om trije nivo's: Applikaasjes, HAL en LL.
- De HAL- en LL-API's dekke in breed skala oan applikaasje-easken.
- De HAL biedt basis gebrûk fan perifeare apparaten, bygelyksamples, en de LL leveret routines op leech nivo.
- Dit nivo omfettet it Board Support Package (BSP) en HAL-sublagen.
- De BSP biedt API's foar hardwarekomponinten op boards, wylst HAL basis gebrûk fan perifeare apparaten leveret, bygelyksamples.
- BSP-stjoerprogramma's keppele komponintstjoerprogramma's oan spesifike boards, wêrtroch it maklik is om nei oare hardware te portearjen.
- De STM32CubeWL3 HAL en LL binne komplementêr, en dekke in breed skala oan tapassingseasken.
- Brûkers kinne dizze API's brûke om effisjint te ynteraksje mei de mikrokontrollerhardware.
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:
STM32Cube omfettet:
- In set brûkerfreonlike ark foar softwareûntwikkeling om projektûntwikkeling fan konsepsje oant realisaasje te dekken, wêrûnder:
- 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 fiert sub-GHz demonstraasje-applikaasjes út, ynklusyf Sigfox™-binêren, op STM32WL3x-produktline-mikrokontrollers 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 mikrokontrollers basearre op de Arm® Cortex®‑M0+ prosessor. It sammelet, yn ien pakket, alle generike 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.
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-stjoerprogramma's binne ûntworpen om in rappe, lichtgewicht, saakkundige-oriïntearre laach te bieden dy't tichter by de hardware stiet as de HAL. Yn tsjinstelling ta de HAL wurde LL API's net levere foar perifeare apparaten wêr't optimalisearre tagong gjin wichtige funksje is, of foar dyjingen dy't swiere softwarekonfiguraasje of in komplekse hegere-nivo-stack 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.
Noat: 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 bibleteken dy't de FreeRTOS™-kernel, FatFS en Sigfox™-protokolbibleteek omfetsje.
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, dy't sjen litte hoe't jo it brûke kinne.
- Yntegraasje bvampLes dy't ferskate middleware-komponinten brûke, wurde ek levere.
STM32CubeWL3 firmware pakket oerview
Stipe STM32WL3x-apparaten en hardware
- STM32 Cube biedt in tige draachbere hardware-abstraksjelaach (HAL) boud om in generike arsjitektuer. It makket it prinsipe fan opboulagen mooglik, lykas it brûken fan 'e middlewarelaach om har funksjes te ymplementearjen sûnder yngeand te witten hokker MCU brûkt wurdt. Dit ferbetteret de werbrûkberens fan 'e bibleteekkoade en soarget foar maklike portabiliteit nei oare apparaten.
- Derneist, mei syn laachstruktuer, STM32CubeWL3 biedt folsleine stipe foar de hiele 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 |
stm32wl3x | STM32WL30xx mikrokontrollers STM32WL31xx mikrokontrollers STM32WL33xx mikrokontrollers |
Tabel 2. Boards foar STM32WL3x produktline
Board | STM32WL3x board stipe apparaten |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
It STM32CubeWL3 MCU-pakket kin op elke kompatibel hardware rinne. De brûkers aktualisearje de BSP-stjoerprogramma's om de levere eks te portearjen.amples op harren boards, as dizze hawwe deselde hardware funksjes (lykas LEDs of knoppen).
Firmware pakket oerview
- De STM32CubeWL3 MCU-pakketoplossing wurdt levere yn ien zip-pakket, mei de struktuer werjûn yn ôfbylding 3.
Foarsichtigens: De brûker moat de komponinten net wizigje files. De brûker kin allinnich 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 bepaald boerd kin fluch boud wurde mei de sjabloanprojekten dy't beskikber binne yn 'e Templates- 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 finster Projektferkenner en klik dan op it menu [Projekt]>[Projekt bouwe].
- 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 fanút it sjabloanprojekt dat foar elk boerd beskikber steld is ûnder \Projekten\ \Sjabloanen of fan elk beskikber projekt ûnder \Projekten\ \Eksamples of \Projekten\ \Applikaasjes (wêr't ferwiist nei de namme fan it boerd).
It Template-projekt leveret in lege haadloopfunksje. It is lykwols in goed útgongspunt om de ynstellings fan it STM32CubeWL3-projekt te begripen. It template 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 hjit xxx_conf_template.h, it fragmint- sjabloan moat 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 'e prefetch fan it flashgeheugen en de SysTick-ûnderbrekkingsprioriteit (fia makro's definieare yn stm32 wl3x_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 oscillatoren. De brûker kiest derfoar om
ien of alle oscillatoren konfigurearje. - HAL_RCC_ClockConfig(): dizze API konfigurearret de systeemklokboarne, de wachttiid foar flashgeheugen, en de AHB- en APB-prescalers.
- HAL_RCC_OscConfig(): dizze API konfigurearret de ynterne en eksterne oscillatoren. De brûker kiest derfoar om
- 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 wurdt it ISR-proses fan 'e beller 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 algemiene timer, 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 fan it Templates_LL-projekt dat foar elk boerd ûnder \Projekten\ levere is. \Templates_LL of fan elk beskikber projekt ûnder \Projekten\ \Eksamples_ LL ( ferwiist nei de namme fan it boerd, 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 behâlden - of bywurkje in besteand Template s_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 STM32CubeWL3-pakket.
Se binne 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 eksampIt bestân stiet ûnder de map NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRadio_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 eksampIt bestân leit ûnder de map NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_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.
Revision skiednis
Tabel 3. Document revyzje skiednis
Datum | Revyzje | Feroarings |
29-Mar-2024 | 1 | Inisjele release. |
30-Oktober-2024 | 2 | Folsleine yntegraasje fan STM32CubeWL3 yn STM32Cube. Bywurke:
• Ynlieding • Seksje 2: STM32CubeWL3 haadfunksjes • Seksje 3.2.1: Middleware komponinten • Seksje 4: STM32CubeWL3 firmwarepakket oerview • Seksje 5.1: In earste eksample • Seksje 5.3: RF-applikaasjes, demonstraasjes, en eksamples Added: • Seksje 5.1.1: Hoe kinne jo in HAL example • Seksje 5.2.1: STM32CubeMX brûke om in applikaasje te ûntwikkeljen of te aktualisearjen • SSeksje 6.4: Is der in sjabloanprojekt foar MRSUBG/LPAWUR perifeare apparatuer?amples? • Seksje 6.5: Hoe kin STM32CubeMX koade generearje op basis fan ynbêde software? Fuortsmite: • PC ark, ynklusyf Navigator, STM32WL3 GUI, en MR-SUBG Sequencer GUI • Hoe kin WiSE-Studio IOMapper koade generearje basearre op ynbêde software? • Stiet Navigator tagong ta boarnen foar softwarepakket? |
22-Jan-2025 | 3 | It berik fan tapasbere apparaten útwreide nei STM32WL30xx en STM32WL31xx mikrokontrollers yn tabel 1. Makro's foar STM32WL3x produktline. |
WICHTICH NOTICE - LÊS FERGESE
- STMicroelectronics NV en har dochterûndernimmingen ("ST") behâlde it rjocht foar om feroarings, korreksjes, ferbetterings, oanpassings en ferbetterings oan ST-produkten en / of oan dit dokumint op elk momint sûnder notice te meitsjen. Keapers moatte de lêste relevante ynformaasje krije oer ST-produkten foardat se oarders pleatse. ST-produkten wurde ferkocht yn oerienstimming mei ST's ferkeapbetingsten en -betingsten yn plak op it momint fan bestellingserkenning.
- Keapers binne allinich ferantwurdlik foar de kar, seleksje en gebrûk fan ST-produkten en ST nimt gjin oanspraaklikens oan foar help by oanfraach of it ûntwerp fan produkten fan keapers.
- Gjin lisinsje, útdruklik of ymplisearre, foar in yntellektueel eigendomsrjocht wurdt hjiryn ferliend troch ST.
- Wederferkeap fan ST-produkten mei bepalingen dy't ferskille fan 'e ynformaasje dy't hjiryn oanjûn binne, sil gjin garânsje ferliend troch ST foar sa'n produkt ûnjildich meitsje.
- ST en it ST-logo binne hannelsmerken fan ST. Foar oanfoljende ynformaasje oer ST hannelsmerken, ferwize nei www.st.com/trademarks. Alle oare nammen fan produkten of tsjinsten binne it eigendom fan har respektive eigners.
- Ynformaasje yn dit dokumint ferfangt en ferfangt ynformaasje earder levere yn alle eardere ferzjes fan dit dokumint.
- © 2025 STMicroelectronics - Alle rjochten foarbehâlden
FAQ
Wannear moat ik HAL brûke ynstee fan LL-bestjoerders?
HAL-stjoerprogramma's biede API's op heech nivo en funksje-oriïntearre, mei in hege mjitte fan portabiliteit. Produkt- of perifeare kompleksiteit wurdt ferburgen foar einbrûkers. LL-stjoerprogramma's biede API's op leech nivo fan registers mei bettere optimalisaasje, mar minder portabel. Se fereaskje yngeande kennis fan produkt- of IP-spesifikaasjes.
Hoe binne LL-initialisaasje-API's ynskeakele?
De definysje fan LL-inisjalisaasje-API's en byhearrende literals en prototypen fan boarnenstrukturen wurdt betingst troch de USE_FULL_LL_DRIVER-kompilaasjeskeakel. Om LL-inisjalisaasje-API's te brûken, foegje dizze skeakel ta oan 'e toolchain-kompilerpreprocessor.
Is der in sjabloan projekt foar MRSUBG / LPAWUR perifeare examples?
Om in nije MRSUBG of LPAWUR exampit projekt, begjin fan it skeletprojekt dat ûnder ProjektenNUCLEO-33CC Ex levere wurdtampde MRSUBG of ProjectsNUCLEO-WL33CC Examples LPAWUR of fan elk beskikber projekt ûnder dizze selde mappen.
Hoe kin STM32CubeMX koade generearje basearre op ynbêde software?
STM32CubeMX hat in ynboude kennis fan STM32-mikrokontrollers, ynklusyf har perifeare apparaten en software, wêrtroch it in grafyske foarstelling oan 'e brûker kin leverje en .h of .c kin generearje. files basearre op de konfiguraasje fan 'e brûker.
Dokuminten / Resources
![]() |
ST STM32WL3x mikrokontrollers [pdf] Brûkershânlieding STM32WL3x mikrokontrollers, STM32WL3x, mikrokontrollers |