Pakkett tas-Software STM32WL3x
Speċifikazzjonijiet
- Isem tal-Prodott: Pakkett tas-softwer STM32CubeWL3
- Kompatibbiltà: mikrokontrolluri STM32WL3x
- Karatteristiċi ewlenin:
- APIs b'saff baxx (LL) u saff ta' estrazzjoni tal-ħardwer (HAL).
- Komponenti middleware tal-qalba SigfoxTM, FatFS, u FreeRTOSTM
- Applikazzjonijiet u dimostrazzjonijiet
Istruzzjonijiet għall-Użu tal-Prodott
Nibdew
Biex tibda tuża l-pakkett tas-softwer STM32CubeWL3, segwi dawn il-passi:
- Niżżel il-pakkett tas-softwer mill-uffiċjal websit.
- Installa l-ambjent ta 'żvilupp meħtieġ (eż., STM32CubeIDE, EWARM, MDK-ARM).
- Irreferi għall-examples u applikazzjonijiet ipprovduti għal gwida.
STM32CubeWL3 Arkitettura Overview
Il-pakkett tas-software STM32CubeWL3 huwa mibni madwar tliet livelli ewlenin
- Livell 0: Saff ta' astrazzjoni tal-ħardwer (HAL) u sewwieqa BSP.
- Livell 1: Applikazzjonijiet, libreriji, u komponenti bbażati fuq protokoll.
Mistoqsijiet Frekwenti (FAQ)
Q: X'inhuma l-karatteristiċi ewlenin tal-pakkett tas-softwer STM32CubeWL3?
A: Il-karatteristiċi ewlenin jinkludu APIs ta 'saff baxx u HAL, komponenti middleware bħal SigfoxTM, FatFS, kernel FreeRTOSTM, applikazzjonijiet, u dimostrazzjonijiet.
Introduzzjoni
STM32Cube hija inizjattiva oriġinali ta 'STMicroelectronics biex ittejjeb il-produttività tad-disinjatur b'mod sinifikanti billi tnaqqas l-isforz, il-ħin u l-ispiża tal-iżvilupp. STM32Cube ikopri l-portafoll STM32 kollu.
STM32Cube jinkludi:
- Sett ta’ għodod ta’ żvilupp ta’ softwer faċli għall-utent biex ikopru l-iżvilupp tal-proġett mill-konċepiment sat-twettiq, fost] li huma:
- STM32CubeMX, għodda ta 'konfigurazzjoni ta' softwer grafiku li tippermetti l-ġenerazzjoni awtomatika ta 'kodiċi ta' inizjalizzazzjoni C bl-użu ta 'wizards grafiċi
- STM32CubeIDE, għodda ta 'żvilupp all-in-one b'konfigurazzjoni periferali, ġenerazzjoni ta' kodiċi, kumpilazzjoni ta 'kodiċi, u karatteristiċi ta' debug
- STM32CubeCLT, sett ta' għodod għall-iżvilupp tal-linja tal-kmand kollha f'wieħed b'kumpilazzjoni ta' kodiċi, programmar tal-bord, u karatteristiċi ta' debug
- STM32CubeProgrammer (STM32CubeProg), għodda ta' programmar disponibbli f'verżjonijiet grafiċi u tal-linja tal-kmand
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), għodod ta' monitoraġġ b'saħħithom biex jirfinaw l-imġiba u l-prestazzjoni tal-applikazzjonijiet STM32 f'ħin reali
- Pakketti STM32Cube MCU u MPU, pjattaformi komprensivi ta' softwer inkorporat speċifiċi għal kull serje ta' mikrokontrolluri u mikroproċessuri (bħal STM32CubeWL3 għal-linja ta' prodotti STM32WL3x), li jinkludu:
- Saff ta' estrazzjoni tal-ħardwer STM32Cube (HAL), li jiżgura portabbiltà massimizzata fil-portafoll STM32
- STM32Cube APIs b'saff baxx, li jiżguraw l-aħjar prestazzjoni u footprints bi grad għoli ta 'kontroll tal-utent fuq] hardware
- Sett konsistenti ta' komponenti middleware bħall-qalba ta' FreeRTOS™, FatFS, u Sigfox™
- L-utilitajiet kollha tas-softwer inkorporati b'settijiet sħaħ ta' periferali u applikattivi examples
- Pakketti ta' Espansjoni STM32Cube, li fihom komponenti tas-softwer inkorporati li jikkumplimentaw il-funzjonalitajiet tal-Pakketti MCU u MPU STM32Cube bi:
-
- Estensjonijiet ta' middleware u saffi applikattivi
- Examples li jaħdmu fuq xi bordijiet speċifiċi għall-iżvilupp STMicroelectronics
Dan il-manwal tal-utent jiddeskrivi kif tibda bil-Pakkett MCU STM32CubeWL3.
Taqsima 2 tiddeskrivi l-karatteristiċi ewlenin ta 'STM32CubeWL3 u Taqsima 3 tipprovdi overview tal-arkitettura tiegħu u tal-istruttura tal-Pakkett tal-MCU.
Informazzjoni ġenerali
STM32CubeWL3 iħaddem applikazzjonijiet ta 'dimostrazzjoni taħt il-GHz, inklużi Sigfox™ binaries, fuq mikrokontrolluri tal-linja ta' prodotti STM32WL3x ibbażati fuq il-proċessur Arm® Cortex®-M0+.
Il-mikrokontrolluri STM32WL3x jintegraw il-periferali tar-radju RF konformi sub-GHz ta 'l-aħħar ta' STMicroelectronics, ottimizzati għal konsum ta 'enerġija ultra-baxxa u prestazzjoni tar-radju eċċellenti, għal ħajja ta' batterija mingħajr paragun.
Nota: Arm hija trademark reġistrata ta' Arm Limited (jew is-sussidjarji tagħha) fl-Istati Uniti u/jew xi mkien ieħor.
STM32CubeWL3 karatteristiċi ewlenin
- Il-Pakkett MCU STM32CubeWL3 jaħdem fuq mikrokontrolluri STM32 32-bit ibbażati fuq il-proċessur Arm® Cortex®-M0+. Jiġbor, f'pakkett wieħed, il-komponenti kollha tas-softwer integrati ġeneriċi meħtieġa biex tiġi żviluppata applikazzjoni għall-mikrokontrolluri tal-linja tal-prodotti STM32WL3x.
- Il-pakkett jinkludi APIs b'saff baxx (LL) u saff ta' estrazzjoni tal-ħardwer (HAL) li jkopru l-ħardwer tal-mikrokontrollur, flimkien ma' sett estensiv ta' examples li jaħdmu fuq bordijiet STMicroelectronics. L-APIs HAL u LL huma disponibbli f'liċenzja BSD open-source għall-konvenjenza tal-utent. Jinkludi wkoll il-komponenti middleware tal-qalba Sigfox™, FatFS, u FreeRTOS™.
- Il-Pakkett MCU STM32CubeWL3 jipprovdi wkoll diversi applikazzjonijiet u dimostrazzjonijiet li jimplimentaw il-komponenti tal-middleware kollha tiegħu.
- It-tqassim tal-komponenti tal-Pakkett STM32CubeWL3 MCU huwa illustrat fil-Figura 1.
Figura 1. Komponenti tal-Pakkett STM32CubeWL3 MCU
STM32CubeWL3 arkitettura fuqview
Is-soluzzjoni tal-Pakkett STM32CubeWL3 MCU hija mibnija madwar tliet livelli indipendenti li jinteraġixxu faċilment kif deskritt fil-Figura 2. Livell 0
Dan il-livell huwa maqsum fi tliet sottosaffi:
- Pakkett ta' appoġġ tal-Bord (BSP).
- Saff ta' estrazzjoni tal-ħardwer (HAL):
- Sewwieqa periferali HAL
- Sewwieqa b'saff baxx
- Użu periferali bażiku examples.
Pakkett ta' appoġġ għall-Bord (BSP)
Dan is-saff joffri sett ta 'APIs relattivi għall-komponenti tal-ħardwer fil-bordijiet tal-ħardwer (bħal LEDs, buttuni, u sewwieqa COM). Huwa magħmul minn żewġ partijiet:
- Komponent:
Dan huwa s-sewwieq relattiv għall-apparat estern fuq il-bord u mhux għall-STM32. Is-sewwieq tal-komponent jipprovdi APIs speċifiċi lill-komponenti esterni tas-sewwieq BSP u jista 'jinġarr fuq kwalunkwe bord ieħor. - Sewwieq BSP:
Jippermetti li jgħaqqad is-sewwieqa tal-komponenti ma 'bord speċifiku u jipprovdi sett ta' APIs faċli għall-utent. Ir-regola tal-ismijiet tal-API hija BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP huwa bbażat fuq arkitettura modulari li tippermetti porting faċli fuq kwalunkwe ħardwer billi timplimenta biss ir-rutini ta 'livell baxx.
Saff ta' estrazzjoni tal-ħardwer (HAL) u saff baxx (LL)
L-STM32CubeWL3 HAL u LL huma komplementari u jkopru firxa wiesgħa ta 'rekwiżiti ta' applikazzjoni:
- Is-sewwieqa HAL joffru APIs ta 'livell għoli orjentati lejn il-funzjoni li jinġarru ħafna. Huma jaħbu l-MCU u l-kumplessità periferali lill-utent aħħari.
Is-sewwieqa HAL jipprovdu APIs ġeneriċi multi-istanzi orjentati lejn il-karatteristiċi, li jissimplifikaw l-implimentazzjoni tal-applikazzjoni tal-utent billi jipprovdu proċessi lesti għall-użu. Per example, għall-periferali tal-komunikazzjoni (I2C, UART, u oħrajn), jipprovdi APIs li jippermettu l-inizjalizzazzjoni u l-konfigurazzjoni tal-periferali, il-ġestjoni tat-trasferiment tad-dejta abbażi tal-votazzjoni, l-interruzzjoni jew il-proċess tad-DMA, u l-immaniġġjar ta 'żbalji ta' komunikazzjoni li jistgħu jinqalgħu waqt il-komunikazzjoni. L-APIs tas-sewwieq HAL huma maqsuma f'żewġ kategoriji:
- APIs ġeneriċi, li jipprovdu funzjonijiet komuni u ġeneriċi għall-mikrokontrolluri kollha tas-serje STM32.
- APIs ta 'estensjoni, li jipprovdu funzjonijiet speċifiċi u personalizzati għal familja speċifika jew numru ta' parti speċifiku.
- L-APIs ta 'saff baxx jipprovdu APIs ta' livell baxx fil-livell tar-reġistru, b'ottimizzazzjoni aħjar iżda inqas portabilità. Huma jeħtieġu għarfien profond tal-MCU u l-ispeċifikazzjonijiet periferali.
Is-sewwieqa LL huma ddisinjati biex joffru saff veloċi ħafif orjentat lejn l-esperti li huwa eqreb lejn il-ħardwer mill-HAL. Kuntrarjament għall-HAL, LL APIs mhumiex ipprovduti għall-periferali fejn l-aċċess ottimizzat mhuwiex karatteristika ewlenija, jew għal dawk li jeħtieġu konfigurazzjoni ta 'softwer tqil jew munzell kumpless ta' livell ta 'fuq.
Is-sewwieqa LL karatteristika:
- Sett ta' funzjonijiet biex jinizjalizza l-karatteristiċi prinċipali periferali skont il-parametri speċifikati fl-istrutturi tad-dejta.
- Sett ta 'funzjonijiet biex jimlew l-istrutturi tad-dejta tal-inizjalizzazzjoni bil-valuri reset li jikkorrispondu għal kull qasam.
- Funzjoni għad-de-initialization periferali (reġistri periferali restawrati għall-valuri default tagħhom).
- Sett ta' funzjonijiet inline għal aċċess dirett u atomiku għar-reġistru.
- Indipendenza sħiħa minn HAL u kapaċità li tintuża f'modalità waħedha (mingħajr sewwieqa HAL).
- Kopertura sħiħa tal-karatteristiċi periferali appoġġjati.
Użu periferali bażiku examples
Dan is-saff jagħlaq l-examples mibnija fuq il-periferali STM32 bl-użu biss tar-riżorsi HAL u BSP.
Dimostrazzjoni examples huma wkoll disponibbli biex juru ex aktar kumplessiample xenarji b'periferali speċifiċi, bħall-MRSUBG u l-LPAWUR.
Livell 1
Dan il-livell huwa maqsum f'żewġ sottosaffi:
- Komponenti middleware
- Examples bbażati fuq il-komponenti middleware
Komponenti middleware
Il-middleware huwa sett ta' libreriji li jkopru l-librerija tal-protokoll FreeRTOS™, FatFS, u Sigfox™. L-interazzjoni orizzontali bejn il-komponenti ta 'dan is-saff issir billi ssejjaħ l-APIs dehru.
L-interazzjoni vertikali mas-sewwieqa ta 'saff baxx issir permezz ta' callbacks speċifiċi u macros statiċi implimentati fl-interface tas-sejħa tas-sistema tal-librerija.
Il-karatteristiċi ewlenin ta 'kull komponent middleware huma kif ġej:
- Il-qalba ta' FreeRTOS™: timplimenta sistema operattiva f'ħin reali (RTOS), iddisinjata għal sistemi inkorporati.
- Sigfox™: timplimenta l-librerija tal-protokoll Sigfox™ konformi man-netwerk tal-protokoll Sigfox™ u tinkludi l-librerija tal-protokoll tat-test RF biex tittestja kontra l-għodod RF Sigfox™.
- FatFS: jimplimenta l-FAT ġeneriku file modulu tas-sistema.
Examples bbażati fuq il-komponenti middleware
Kull komponent middleware jiġi ma 'wieħed jew aktar examples, imsejħa wkoll applikazzjonijiet, li juru kif tużah. Integrazzjoni examples li jużaw diversi komponenti middleware huma pprovduti wkoll.
Pakkett tal-firmware STM32CubeWL3 fuqview
Apparat u hardware STM32WL3x appoġġjati
STM32Cube joffri saff ta 'estrazzjoni ta' ħardwer li jista 'jinġarr ħafna (HAL) mibni madwar arkitettura ġenerika. Jippermetti l-prinċipju tas-saffi li jinbnew, bħall-użu tas-saff tal-middleware biex jimplimenta l-funzjonijiet tagħhom mingħajr ma jkun jaf, fil-fond, liema MCU jintuża. Dan itejjeb l-użu mill-ġdid tal-kodiċi tal-librerija u jiżgura portabbiltà faċli għal apparati oħra.
- Barra minn hekk, bl-arkitettura f'saffi tiegħu, STM32CubeWL3 joffri appoġġ sħiħ għal-linja kollha ta 'prodotti STM32WL3x.
- L-utent għandu jiddefinixxi biss il-makro t-tajjeb fi stm32wl3x.h.
It-Tabella 1 turi l-makro biex tiddefinixxi skont l-apparat tal-linja tal-prodotti STM32WL3x użat. Din il-makro għandha tkun definita wkoll fil-preproċessur tal-kompilatur.
Tabella 1. Makros għal-linja ta 'prodotti STM32WL3x
Makro definit fi stm32wl3x.h | Apparat tal-linja tal-prodotti STM32WL3x |
stm32wl33 | Mikrokontrolluri STM32WL33xx |
STM32CubeWL3 karatteristiċi sett għani ta 'examples u applikazzjonijiet fil-livelli kollha, li jagħmilha faċli biex tifhem u tuża kwalunkwe komponenti ta' sewwieq jew middleware HAL. Dawn examples jimxu fuq il-bordijiet STMicroelectronics elenkati fit-Tabella 2.
Bord | Apparat appoġġjat bord STM32WL3x |
NUKLEO-WL33CC1 | STM32WL33CC |
NUKLEO-WL33CC2 | STM32WL33CC |
Il-Pakkett MCU STM32CubeWL3 jista' jaħdem fuq kwalunkwe ħardwer kompatibbli. L-utenti sempliċement jaġġornaw is-sewwieqa tal-BSP għall-port tal-ex ipprovdutamples fuq il-bordijiet tagħhom, jekk dawn għandhom l-istess karatteristiċi tal-ħardwer (bħal LEDs jew buttuni).
Pakkett tal-firmware fuqview
Is-soluzzjoni tal-Pakkett STM32CubeWL3 MCU hija pprovduta f'pakkett wieħed zip li għandu l-istruttura murija fil-Figura 3.
Figura 3. Struttura tal-pakkett tal-firmware STM32CubeWL3
Attenzjoni:
L-utent m'għandux jimmodifika l-komponenti files. L-utent jista' biss jeditja s-sorsi \Projects.
Għal kull bord, sett ta examples huwa pprovdut bi proġetti kkonfigurati minn qabel għall-għodda EWARM, MDK-ARM, u STM32CubeIDE.
Il-Figura 4 turi l-istruttura tal-proġett għall-bordijiet NUCLEO-WL33CCx.
L-examples huma kklassifikati skont il-livell STM32CubeWL3 li japplikaw għalih. Dawn jissejħu kif ġej:
- Livell 0 examples jissejħu Eżamples, Eżamples_LL, u Eżamples_MIX. Huma jużaw rispettivament sewwieqa HAL, sewwieqa LL, u taħlita ta 'sewwieqa HAL u LL mingħajr ebda komponent ta' middleware. Dimostrazzjoni examples huma wkoll disponibbli.
- Livell 1 examples jissejħu Applikazzjonijiet. Huma jipprovdu każijiet ta 'użu tipiċi ta' kull komponent middleware.
Kwalunkwe applikazzjoni tal-firmware għal bord partikolari tista' tinbena malajr bl-użu tal-mudelli ta' proġetti disponibbli fid-direttorji Templ ates u Templates_LL.
Examples, Eżamples_LL, u Eżamples_MIX għandhom l-istess struttura:
- \Inc folder li fih l-header kollu files.
- \Src folder li fih il-kodiċi tas-sors.
- folders \EWARM, \MDK-ARM, u \STM32CubeIDE li fihom il-proġett konfigurat minn qabel għal kull toolchain.
- readme.md u readme.html li jiddeskrivu l-exampl-imġieba u l-ambjent meħtieġ biex din taħdem.
Nibdew b'STM32CubeWL3
Tmexxi l-ewwel example
Din it-taqsima tispjega kemm huwa sempliċi li tmexxi l-ewwel example fi ħdan STM32CubeWL3. Huwa juża bħala illustrazzjoni l-ġenerazzjoni ta 'toggle LED sempliċi li jaħdem fuq il-bord NUCLEO-WL33CC1:
- Niżżel il-Pakkett MCU STM32CubeWL3.
- Unzip, jew ħaddem l-installatur jekk ipprovdut, f'direttorju tal-għażla tiegħek.
- Kun żgur li ma timmodifikax l-istruttura tal-pakkett murija fil-Figura 3. Struttura tal-pakkett tal-firmware STM32CubeWL3. Innota li huwa wkoll rakkomandat li tikkopja l-pakkett f'post qrib il-volum ta 'l-għeruq (li jfisser C:\ST jew G:\Tests), peress li xi IDEs jiltaqgħu ma' problemi meta l-mogħdija tkun twila wisq.
Kif tmexxi HAL example
Qabel it-tagħbija u t-tħaddim example, huwa rakkomandat ħafna li taqra l-example readme file għal kwalunkwe konfigurazzjoni speċifika.
- Fittex għal \Proġetti\NUCLEO-WL33CC\Eżamples.
- Iftaħ il-folders \GPIO, imbagħad \GPIO_EXTI.
- Iftaħ il-proġett bl-għodda preferuta. A malajr fuqview dwar kif tiftaħ, tibni, u tmexxi example mal-toolchains appoġġjati hija mogħtija hawn taħt.
- Ibni mill-ġdid kollha files u tagħbija l-immaġni fil-memorja fil-mira.
- Mexxi l-example. Għal aktar dettalji, irreferi għall-eżample readme file.
Biex tiftaħ, tibni, u tmexxi example ma' kull għodda appoġġjata, segwi l-passi hawn taħt:
- EWARM:
- Taħt l-Eżamples folder, iftaħ is-subfolder \EWARM.
- Tniedi l-ispazju tax-xogħol Project.eww (l-isem tal-ispazju tax-xogħol jista’ jinbidel minn example għal ieħor).
- Ibni mill-ġdid kollha files: [Proġett]> [Ibni mill-ġdid kollha].
- Tagħbija l-immaġni tal-proġett: [Proġett]> [Debug].
- Mexxi l-programm: [Debug]> [Mur (F5)].
- MDK-ARM:
- Taħt l-Eżamples folder, iftaħ is-subfolder \MDK-ARM.
- Iftaħ l-ispazju tax-xogħol Project.uvproj (l-isem tal-ispazju tax-xogħol jista’ jinbidel minn example għal ieħor).
- Ibni mill-ġdid kollha files: [Proġett]> [Ibni mill-ġdid il-mira kollha files].
- Tagħbija l-immaġni tal-proġett: [Debug]> [Ibda/Waqqaf is-Sessjoni tad-Debug].
- Mexxi l-programm: [Debug]> [Run (F5)].
- STM32CubeIDE:
- Iftaħ il-katina tal-għodda STM32CubeIDE.
- Ikklikkja fuq [File]>[Aqleb l-Ispazju tax-Xogħol]>[Oħrajn] u bbrawżja għad-direttorju tal-ispazju tax-xogħol STM32CubeIDE.
- Ikklikkja fuq [File]>[Importa], agħżel [Ġenerali]>[Proġetti eżistenti fl-Ispazju tax-Xogħol], u mbagħad ikklikkja [Li jmiss].
- Fittex fid-direttorju tal-ispazju tax-xogħol STM32CubeIDE u agħżel il-proġett.
- Ibni mill-ġdid il-proġett kollu files: Agħżel il-proġett fit-tieqa tal-Proġett Explorer imbagħad ikklikkja fuq il-
[Proġett]> [Bini proġett] menu. - Mexxi l-programm: [Run]>[Debug (F11)].
Żvilupp ta 'applikazzjoni tad-dwana
Uża STM32CubeMX biex tiżviluppa jew taġġorna applikazzjoni
Fil-Pakkett STM32Cube MCU, kważi l-proġett kollu examples huma ġġenerati bl-għodda STM32CubeMX biex jinizjalizza s-sistema, il-periferali u l-middleware.
L-użu dirett ta’ proġett eżistenti example mill-għodda STM32CubeMX teħtieġ STM32CubeMX 6.12.0 jew ogħla:
- Wara l-installazzjoni ta 'STM32CubeMX, iftaħ u jekk meħtieġ aġġorna proġett propost.
L-aktar mod sempliċi biex tiftaħ proġett eżistenti huwa li tikklikkja darbtejn fuq il-*.ioc file sabiex STM32CubeMX awtomatikament tiftaħ il-proġett u s-sors tiegħu files. STM32CubeMX jiġġenera l-kodiċi tas-sors ta 'inizjalizzazzjoni ta' proġetti bħal dawn. - Il-kodiċi tas-sors tal-applikazzjoni prinċipali jinsab fil-kummenti "KODIĊI TAL-UTENTI BEGIN" u "TMIEM TAL-KODIĊI TAL-UTENTI". Jekk l-għażla periferali u s-settings jiġu modifikati, STM32CubeMX jaġġorna l-parti ta 'inizjalizzazzjoni tal-kodiċi filwaqt li jippreserva l-kodiċi tas-sors tal-applikazzjoni prinċipali.
Biex tiżviluppa proġett apposta ma 'STM32CubeMX, segwi l-proċess pass pass:
- Ikkonfigura s-softwer inkorporat kollu meħtieġ billi tuża pinout-conflict solver, helper tal-issettjar tas-siġra tal-arloġġ, kalkulatur tal-konsum tal-enerġija, u l-utilità li twettaq konfigurazzjoni periferali tal-MCU (bħal GPIO jew USART).
- Iġġenera l-kodiċi C inizjalizzazzjoni bbażata fuq il-konfigurazzjoni magħżula. Dan il-kodiċi huwa lest biex jintuża f'diversi ambjenti ta 'żvilupp. Il-kodiċi tal-utent jinżamm fil-ġenerazzjoni tal-kodiċi li jmiss.
Għal aktar informazzjoni dwar STM32CubeMX, irreferi għall-manwal tal-utent STM32CubeMX għall-konfigurazzjoni STM32 u l-ġenerazzjoni tal-kodiċi C tal-inizjalizzazzjoni (UM1718).
Applikazzjonijiet tas-sewwieq
Applikazzjoni HAL
Din it-taqsima tiddeskrivi l-passi meħtieġa biex tinħoloq applikazzjoni HAL personalizzata billi tuża STM32CubeWL3:
- Oħloq proġett
Biex toħloq proġett ġdid, ibda jew mill-proġett Template provdut għal kull bord taħt \Projects\< STM32xxx_yyy>\Templates jew minn kwalunkwe proġett disponibbli taħt \Projects\ \Eżampl es jew \Proġetti\ \Applikazzjonijiet (fejn tirreferi għall-isem tal-bord). Il-proġett Template jipprovdi funzjoni ta 'linja prinċipali vojta. Madankollu, huwa punt ta 'tluq tajjeb biex tifhem is-settings tal-proġett STM32CubeWL32. Il-mudell għandu l-karatteristiċi li ġejjin:- Fiha l-kodiċi tas-sors HAL, CMSIS, u d-drivers BSP, li huma s-sett minimu ta 'komponenti meħtieġa biex jiġi żviluppat kodiċi fuq bord partikolari.
- Fih il-mogħdijiet inklużi għall-komponenti kollha tal-firmware.
- Jiddefinixxi l-apparati tal-linja tal-prodotti STM32WL3x appoġġjati, li jippermetti li s-sewwieqa CMSIS u HAL jiġu kkonfigurati b'mod korrett.
- Jipprovdi utent lest għall-użu files konfigurati minn qabel kif muri hawn taħt:
- HAL inizjalizzat bil-bażi tal-ħin default bil-Arm® Core SysTick.
- SysTick ISR implimentat għall-iskop HAL_Delay().
Nota: Meta tikkopja proġett eżistenti f'post ieħor, kun żgur li l-mogħdijiet kollha inklużi huma aġġornati.
- Ikkonfigura l-komponenti tal-firmware
Il-komponenti HAL u middleware joffru sett ta' għażliet ta' konfigurazzjoni fil-ħin tal-bini bl-użu ta' macros #define ddikjarati f'header file. Konfigurazzjoni tal-mudell file huwa pprovdut f'kull komponent, li għandu jiġi kkupjat fil-folder tal-proġett (ġeneralment il-konfigurazzjoni file jismu xxx_conf_template.h, il-framment _template jeħtieġ li jitneħħa meta tikkopjah fil-folder tal-proġett). Il-konfigurazzjoni file jipprovdi biżżejjed informazzjoni biex tifhem l-impatt ta 'kull għażla ta' konfigurazzjoni. Informazzjoni aktar dettaljata hija disponibbli fid-dokumentazzjoni pprovduta għal kull komponent. - Ibda l-librerija HAL
Wara li jaqbeż għall-programm prinċipali, il-kodiċi tal-applikazzjoni għandu jsejjaħ l-API HAL_Init() biex jinizjalizza l-librerija HAL, li twettaq il-kompiti li ġejjin:- Konfigurazzjoni tal-prefetch tal-memorja flash u l-prijorità tal-interruzzjoni SysTick (permezz ta' macros definiti fi stm3 2wl3x_hal_conf.h).
- Konfigurazzjoni tas-SysTick biex tiġġenera interruzzjoni kull millisekonda fil-prijorità ta' interruzzjoni SysTick TICK_INT_PRIO definita fi stm32wl3x_hal_conf.h.
- L-issettjar tal-prijorità tal-grupp NVIC għal 0.
- Sejħa tal-funzjoni ta' callback HAL_MspInit() definita fl-utent stm32wl3x_hal_msp.c file biex iwettqu initializations globali ta 'hardware ta' livell baxx.
- Ikkonfigura l-arloġġ tas-sistema
Il-konfigurazzjoni tal-arloġġ tas-sistema ssir billi ċċempel iż-żewġ APIs deskritti hawn taħt:- HAL_RCC_OscConfig(): din l-API tikkonfigura l-oxxillaturi interni u esterni. L-utent jagħżel li jikkonfigura oxxillatur wieħed jew kollha.
- HAL_RCC_ClockConfig(): din l-API tikkonfigura s-sors tal-arloġġ tas-sistema, il-latency tal-memorja flash, u l-prescalers AHB u APB.
- Inizjalizza l-periferali
- L-ewwel ikteb il-funzjoni ta 'inizjalizzazzjoni periferali. Ipproċedi kif ġej:
- Ippermetti l-arloġġ periferali.
- Ikkonfigura l-GPIOs periferali.
- Ikkonfigura l-kanal DMA u ppermetti l-interruzzjoni DMA (jekk meħtieġ).
- Ippermetti l-interruzzjoni periferali (jekk meħtieġ).
- Editja l-stm32xxx_it.c biex iċempel lill-interrupt handlers meħtieġa (periferali u DMA), jekk meħtieġ.
- Ikteb il-funzjonijiet ta 'callback kompluti tal-proċess jekk ikun maħsub li jintuża interruzzjoni periferali jew DMA.
- Fl-utent main.c file, Inizjalizza l-istruttura tal-manku periferali imbagħad sejjaħ il-funzjoni ta 'inizjalizzazzjoni periferali biex inizjalizza l-periferali.
- Żviluppa applikazzjoni
Fuq dan stage, is-sistema hija lesta u l-iżvilupp tal-kodiċi tal-applikazzjoni tal-utent jista 'jibda.
L-HAL jipprovdi APIs intuwittivi u lesti għall-użu biex jiġi kkonfigurat il-periferali. Jappoġġja polling, interruzzjonijiet, u mudell ta 'programmazzjoni DMA, biex jakkomoda kwalunkwe rekwiżit ta' applikazzjoni. Għal aktar dettalji dwar kif tuża kull periferali, irreferi għall-ex sinjuriample sett ipprovdut fil-Pakkett MCU STM32CubeWL3.
Attenzjoni:
Fl-implimentazzjoni default HAL, it-tajmer SysTick jintuża bħala bażi tal-ħin: jiġġenera interruzzjonijiet f'intervalli ta 'ħin regolari. Jekk HAL_Delay() tissejjaħ mill-proċess ISR periferali, kun żgur li l-interruzzjoni SysTick għandha prijorità ogħla (numerikament aktar baxxa) mill-interruzzjoni periferali. Inkella, il-proċess ISR min iċempel huwa
imblukkata. Il-funzjonijiet li jaffettwaw il-konfigurazzjonijiet tal-bażi tal-ħin huma ddikjarati bħala __dgħajfa biex jagħmlu l-override possibbli f'każ ta' implimentazzjonijiet oħra fl-utent file (bl-użu ta’ tajmer għal skopijiet ġenerali, pereżempjuample, jew sors ta’ żmien ieħor).
Għal aktar dettalji, irreferi għall-HAL_TimeBase example.
applikazzjoni LL
Din it-taqsima tiddeskrivi l-passi meħtieġa biex tinħoloq applikazzjoni LL apposta bl-użu ta 'STM32CubeWL3.
- Oħloq proġett
Biex toħloq proġett ġdid, jew ibda mill-proġett Templates_LL ipprovdut għal kull bord taħt \Proġetti\ \Templates_LL jew minn kwalunkwe proġett disponibbli taħt \Proġetti\ \E xamples_LL ( jirreferi għall-isem tal-bord, bħal NUCLEO-WL32CC33).
Il-proġett tal-mudell jipprovdi funzjoni ta 'linja prinċipali vojta, li hija punt ta' tluq tajjeb biex tifhem is-settings tal-proġett għal STM32CubeWL3. Il-karatteristiċi ewlenin tal-mudell huma dawn li ġejjin:- Fiha l-kodiċi tas-sors tas-sewwieqa LL u CMSIS, li huma s-sett minimu ta 'komponenti meħtieġa biex jiġi żviluppat il-kodiċi fuq bord partikolari.
- Fih il-mogħdijiet inklużi għall-komponenti kollha tal-firmware meħtieġa.
- Jagħżel l-apparat tal-linja tal-prodotti STM32WL3x appoġġjat u jippermetti l-konfigurazzjoni korretta tas-sewwieqa CMSIS u LL.
- Jipprovdi utent lest għall-użu files li huma prekonfigurati kif ġej:
- main.h: saff ta' astrazzjoni tad-definizzjoni LED u USER_BUTTON.
- main.c: Konfigurazzjoni tal-arloġġ tas-sistema għall-frekwenza massima.
- Port il-LL example:
- Ikkopja/pejstja l-folder Templates_LL – biex iżżomm is-sors inizjali – jew taġġorna direttament proġett eżistenti Templa tes_LL.
- Imbagħad, il-porting jikkonsisti prinċipalment fis-sostituzzjoni ta' Templates_LL files mill-Eżamples_LL proġett immirat.
- Żomm il-partijiet kollha speċifiċi tal-bord. Għal raġunijiet ta' ċarezza, partijiet speċifiċi tal-bord huma mmarkati b'speċifiċi tags:
Għalhekk, il-passi ewlenin tal-porting huma dawn li ġejjin:
- Ibdel il-stm32wl3x_it.h file.
- Ibdel il-stm32wl3x_it.c file.
- Ibdel il-main.h file u aġġornah: Żomm id-definizzjoni tal-LED u tal-buttuna tal-utent tal-mudell LL taħt KONFIGURAZZJONI SPEĊIFIĊI TAL-BORD tags.
- Ibdel il-main.c file u aġġornaha:
- Żomm il-konfigurazzjoni tal-arloġġ tal-funzjoni tal-mudell SystemClock_Config() LL taħt KONFIGURAZZJONI SPEĊIFIĊI TAL-BORD tags.
- Skont id-definizzjoni tal-LED, ibdel kull okkorrenza LDx b'LDy ieħor disponibbli fil- file prinċipali.h.
B'dawn il-modifiki, l-example timxi fuq il-bord immirat.
Applikazzjonijiet RF, dimostrazzjonijiet, u examples
Tipi differenti ta 'applikazzjonijiet RF, dimostrazzjonijiet, u examples huma disponibbli fil-pakkett STM32CubeWL3. Huma elenkati fiż-żewġ taqsimiet hawn taħt.
Sub-GHz examples u dimostrazzjonijiet
Dawn examples juru l-karatteristiċi ewlenin tal-periferali tar-radju MRSUBG u LPAWUR. Dawn exampil-lezzjonijiet huma disponibbli taħt:
- Proġetti\NUCLEO-WL33CC\Eżamples\MRSUBG
- Proġetti\NUCLEO-WL33CC\Eżamples\LPAWUR
- Proġetti\NUCLEO-WL33CC\Dimostrazzjonijiet\MRSUBG
- Proġetti\NUCLEO-WL33CC\Dimostrazzjonijiet\LPAWUR
Kull exampLe jew dimostrazzjoni ġeneralment tikkonsisti f'żewġ programmi msejħa Tx u Rx li jaġixxu bħala trasmettitur u riċevitur, rispettivament:
- Examples/MRSUBG
- MRSUBG_802_15_4: implimentazzjoni tas-saff fiżiku definit mill-istandard 802.15.4. Juri kif tikkonfigura r-radju biex jittrasmetti jew jirċievi pakketti 802.15.4.
- MRSUBG_BasicGeneric: Skambju ta' pakketti bażiċi STM32WL3x MR_SUBG.
- MRSUBG_Chat: Applikazzjoni sempliċi li turi kif tuża Tx u Rx fuq l-istess apparat.
- MRSUBG_DatabufferHandler: Eżample li turi kif tpartit mid-Databuffer 0 u 1.
- MRSUBG_Sequencer AutoAck: An example li jittrasmetti u jirċievi packet acknowledgments (ACKs) awtomatikament.
- MRSUBG_WMBusSTD: Skambju ta' messaġġi WM-Bus.
- WakeupRadio: Example biex tittestja l-periferali tar-radju LPAWUR.
- Dimostrazzjonijiet/MRSUBG
- MRSUBG_RTC_Button_TX: Dan example turi kif issettja s-SoC fil-modalità deep-stop u kkonfigurat l-MRSUBG biex tqum is-SoC billi tagħfas PB2 biex tibgħat qafas jew wara l-iskadenza tat-tajmer RTC.
- MRSUBG_Sequencer_Sniff: Dan example turi kif issettja s-sekwencer MRSUBG biex jopera fil-modalità sniff. Dan example turi n-naħa tar-riċevitur u teħtieġ apparat ieħor bħala trasmettitur.
- MRSUBG_Timer: L-applikazzjoni tiskeda diversi każijiet ta' timer MRSUBG (b'awtoload) b'intervalli ta' ħin differenti.
- MRSUBG_WakeupRadio_Tx: Dan example jispjega kif issettja s-SoC fil-modalità ta 'waqfien fil-fond u kkonfigurat l-MRSUBG biex tqum is-SoC billi tagħfas PB2 biex tibgħat qafas. Dan example turi n-naħa tat-trasmettitur u teħtieġ apparat ieħor bħala riċevitur LPAWUR. Ir-riċevitur example tinsab taħt il-folder NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
- Dimostrazzjonijiet/LPAWUR
- LPAWUR_WakeupRadio_Rx: Dan example jispjega kif issettja s-SoC fil-modalità deep-stop u kkonfigurat l-LPAWUR biex tqum is-SoC meta jasal qafas u jiġi riċevut b'mod korrett. Dan example turi n-naħa tar-riċevitur u teħtieġ apparat ieħor bħala trasmettitur. It-trasmettitur example tinsab taħt il-folder NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.
Applikazzjoni Sigfox™
Dawn l-applikazzjonijiet juru kif timplimenta xenarju Sigfox™ u tuża l-APIs Sigfox™ disponibbli. Huma disponibbli fil-mogħdija tal-proġett Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: Din l-applikazzjoni turi kif tuża interface tal-linja tal-kmand (CLI) biex tibgħat kmandi li jużaw il-protokoll Sigfox™ biex jibagħtu messaġġi u jwettqu testijiet ta' ċertifikazzjoni minn qabel.
- Sigfox_PushButton: Din l-applikazzjoni tippermetti l-evalwazzjoni tal-kapaċitajiet tar-radju tal-apparat STM32WL33xx Sigfox™. Meta tagħfas PB1 tittrasmetti qafas tat-test Sigfox™.
FAQ
- Meta għandi nuża sewwieqa HAL minflok LL?
Is-sewwieqa tal-HAL joffru APIs ta' livell għoli u orjentati lejn il-funzjoni, b'livell għoli ta' portabilità. Il-kumplessità tal-prodott jew periferali hija moħbija għall-utenti finali.
Is-sewwieqa LL joffru APIs ta 'livell ta' reġistru b'saff baxx, b'ottimizzazzjoni aħjar iżda inqas portabbli. Huma jeħtieġu għarfien fil-fond tal-ispeċifikazzjonijiet tal-prodott jew tal-PI. - Is-sewwieqa HAL u LL jistgħu jintużaw flimkien? Jekk iva, x'inhuma r-restrizzjonijiet?
Huwa possibbli li tuża kemm sewwieqa HAL kif ukoll LL. Uża l-HAL għall-fażi ta 'inizjalizzazzjoni periferali u mbagħad immaniġġja l-operazzjonijiet I/O b'sewwieqa LL.
Id-differenza ewlenija bejn HAL u LL hija li s-sewwieqa HAL jeħtieġu li joħolqu u jużaw mankijiet għall-ġestjoni tal-operat filwaqt li s-sewwieqa LL joperaw direttament fuq reġistri periferali. It-taħlit ta' HAL u LL huwa muri fl-Eżamples_MIX examples. - Kif huma attivati l-APIs tal-inizjalizzazzjoni LL?
Id-definizzjoni tal-APIs tal-inizjalizzazzjoni tal-LL u r-riżorsi assoċjati (strutturi, letterali, u prototipi) hija kkundizzjonata mill-iswiċċ tal-kumpilazzjoni USE_FULL_LL_DRIVER.
Biex tkun tista' tuża l-APIs ta' inizjalizzazzjoni LL, żid dan is-swiċċ fil-preproċessur tal-kompilatur tal-katina tal-għodda. - Hemm xi proġett mudell għal MRSUBG/LPAWUR periferali examples?
Biex toħloq MRSUBG jew LPAWUR ġdid example proġett, jew ibda mill-proġett skeletru pprovdut taħt \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG jew \Proġetti\NUCLEO-WL33CC\Eżamples\LPAWUR, jew minn kwalunkwe proġett disponibbli taħt dawn l-istess direttorji. - Kif jista 'STM32CubeMX jiġġenera kodiċi bbażat fuq softwer inkorporat?
STM32CubeMX għandu għarfien inkorporat tal-mikrokontrolluri STM32, inklużi l-periferali u s-softwer tagħhom, li jippermettilha tipprovdi rappreżentazzjoni grafika lill-utent u tiġġenera *.h jew *.c files ibbażata fuq il-konfigurazzjoni tal-utent.
Storja tar-reviżjoni
Tabella 3. Storja tar-reviżjoni tad-dokument
Data | Reviżjoni | Bidliet |
29-Mar-2024 | 1 | Rilaxx inizjali. |
30-Ottubru-2024 | 2 | Integrazzjoni sħiħa ta ' STM32CubeWL3 in STM32Cube. Aġġornat:
Imneħħija:
|
Dokumenti / Riżorsi
![]() |
Pakkett tas-Software ST STM32WL3x [pdf] Istruzzjonijiet STM32WL3x Pakkett tas-Software, STM32WL3x, Pakkett tas-Software, Pakkett |