Microcontroller STM32WL3x
Istruzzioni per l'usu di u produttu
- U pacchettu STM32CubeWL3 include API di bassa strata (LL) è astrazione di hardware (HAL) chì copre l'hardware di microcontroller.
- Fornisce ancu cumpunenti di middleware cum'è SigfoxTM, FatFS è kernel FreeRTOS.
- U pacchettu vene cun example è applicazioni per una implementazione faciule.
- L'architettura STM32CubeWL3 hè custruita intornu à trè livelli: Applicazioni, HAL è LL.
- L'API HAL è LL copre una larga gamma di esigenze di applicazione.
- L'HAL offre un usu perifericu di basa examples, è u LL furnisce rutine di livellu bassu.
- Stu livellu include u pacchettu di supportu di bordu (BSP) è i sublayers HAL.
- U BSP offre API per i cumpunenti hardware nantu à i bordi, mentri HAL furnisce l'usu perifericu di basa per esempiuamples.
- I driver BSP liganu i drivers di cumpunenti à schede specifiche, rendendu faciule u portu à un altru hardware.
- L'STM32CubeWL3 HAL è LL sò cumplementarii, coprendu una larga gamma di esigenze di applicazione.
- L'utilizatori ponu sfruttà queste API per interagisce cù u hardware di u microcontrollore in modu efficiente.
Introduzione
STM32Cube hè una iniziativa originale di STMicroelectronics per migliurà significativamente a produtividade di u designer riducendu u sforzu di sviluppu, u tempu è u costu. STM32Cube copre tutta a cartera STM32. STM32Cube include:
STM32Cube include:
- Un inseme di strumenti di sviluppu di software user-friendly per copre u sviluppu di u prugettu da a cuncepimentu à a realizazione, trà quali sò:
- STM32CubeMX, un strumentu di cunfigurazione di software graficu chì permette a generazione automatica di codice di inizializazione C cù maghi grafichi
- STM32CubeIDE, un strumentu di sviluppu all-in-one cù cunfigurazione periferica, generazione di codice, compilazione di codice è funzioni di debug
- STM32CubeCLT, un set di strumenti di sviluppu in linea di cummanda all-in-one cù compilazione di codice, prugrammazione di bordu è funzioni di debug
- STM32CubeProgrammer (STM32CubeProg), un strumentu di prugrammazione dispunibule in versione grafica è di linea di cumanda.
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), putenti strumenti di monitoraghju per sintonizà u cumpurtamentu è e prestazioni di l'applicazioni STM32 in tempu reale.
- Pacchetti MCU è MPU STM32Cube, piattaforme complete di software integrati specifiche per ogni serie di microcontroller è microprocessori (cum'è STM32CubeWL3 per a linea di prudutti STM32WL3x), chì includenu:
- Layer di astrazione hardware STM32Cube (HAL), assicurendu a portabilità massima in tutta a cartera STM32
- STM32Cube API low-layer, assicurendu u megliu rendimentu è impronte cù un altu gradu di cuntrollu di l'utilizatori nantu à u hardware
- Un inseme consistente di cumpunenti middleware cum'è kernel FreeRTOS™, FatFS è Sigfox™
- Tutte l'utilità di u software integratu cù setti cumpleti di periferiche è applicative examples
- Pacchetti di espansione STM32Cube, chì cuntenenu cumpunenti di software integrati chì cumplementanu e funziunalità di i Pacchetti MCU è MPU STM32Cube cù:
- Estensioni di middleware è strati applicativi
- Examples in esecuzione nantu à qualchi schede di sviluppu STMicroelectronics specifiche
- Stu manuale d'utilizatore descrive cumu principià cù u pacchettu MCU STM32CubeWL3.
Sezione 2 descrive e caratteristiche principali di STM32CubeWL3 è Sezione 3 furnisce un sopraview di a so architettura è di a struttura di u Pacchettu MCU.
infurmazione generale
- STM32CubeWL3 esegue applicazioni di dimostrazione sub-GHz, cumprese i binari Sigfox™, nantu à i microcontrollers di linea di produttu STM32WL3x basati nantu à u processore Arm® Cortex®‑M0+.
- I microcontrollers STM32WL3x incorporanu u perifericu radio RF di punta sub-GHz di STMicroelectronics, ottimizatu per un cunsumu d'energia ultra-bassu è un rendimentu radio eccellente, per una vita di batteria senza pari.
Nota: Arm hè una marca registrata di Arm Limited (o i so filiali) in i Stati Uniti è / o in altrò.
STM32CubeWL3 caratteristiche principali
- U pacchettu MCU STM32CubeWL3 funziona cù microcontrollers STM32 a 32 bit basati nantu à u processore Arm® Cortex®‑M0+. Riunisce, in un unicu pacchettu, tutti i cumpunenti di software integrati generici necessarii per sviluppà una applicazione per u Linea di prudutti STM32WL3x microcontrollers.
- U pacchettu include API di bassa strata (LL) è di astrazione di hardware (HAL) chì copre l'hardware di microcontroller, inseme cù un vastu set di ex.ampi funzionanti su schede STMicroelectronics. L'API HAL è LL sò dispunibuli in una licenza BSD open-source per a comodità di l'utilizatori. Include ancu i cumpunenti di middleware di kernel Sigfox™, FatFS è FreeRTOS™.
- U Pacchettu MCU STM32CubeWL3 furnisce ancu parechje applicazioni è dimostrazioni chì implementanu tutti i so cumpunenti middleware.
- U layout di cumpunenti di u pacchettu STM32CubeWL3 MCU hè illustratu in Figura 1.
STM32CubeWL3 architettura sopraview
- A suluzione STM32CubeWL3 MCU Package hè custruita intornu à trè livelli indipendenti chì interagiscenu facilmente cum'è descrittu in Figura 2.
Livellu 0
Stu livellu hè divisu in trè sublayers:
- Paquet di supportu di bordu (BSP).
- Livello di astrazione hardware (HAL):
- Drivers periferichi HAL
- Drivers di bassa strata
- Usu perifericu di basa examples.
Paquet di supportu di bordu (BSP)
Questa strata offre un inseme di API relative à i cumpunenti di hardware in i pannelli di hardware (cum'è LED, buttoni è driver COM). Hè cumpostu di dui parti:
Cumpunente:
- Questu hè u driver relative à u dispositivu esternu nantu à u bordu è micca à u STM32. U driver di cumpunenti furnisce API specifichi à i cumpunenti esterni di u driver BSP è puderia esse portabile nantu à qualsiasi altra scheda.
- driver BSP:
- Permette di ligà i drivers di cumpunenti à una scheda specifica è furnisce un inseme di APIs user-friendly. A regula di nomi API hè BSP_FUNCT_Action().
- Example: BSP_LED_Init(), BSP_LED_On()
BSP hè basatu annantu à una architettura modulare chì permette un portu faciule in qualsiasi hardware solu implementendu e rutine di livellu bassu.
Stratu di astrazione di hardware (HAL) è stratu bassu (LL)
L'STM32CubeWL3 HAL è LL sò cumplementarii è copre una larga gamma di esigenze di applicazione:
- I driver HAL offrenu API altamente portatili orientati à e funzioni di altu livellu. Ocultanu u MCU è a cumplessità periferica à l'utilizatori finali.
I driver HAL furniscenu API generiche multi-istanze orientate à e funzioni, chì simplificanu l'implementazione di l'applicazioni d'utilizatori fornendu prucessi pronti per l'usu. Per esample, per i periferici di cumunicazione (I2C, UART, è altri), furnisce API chì permettenu l'inizializazione è a cunfigurazione di u perifericu, a gestione di u trasferimentu di dati basatu nantu à u sondaghju, l'interruzzione o u prucessu DMA, è a gestione di l'errori di cumunicazione chì ponu accade durante a cumunicazione. L'API di driver HAL sò divisi in duie categorie:- API generiche, chì furniscenu funzioni cumuni è generichi à tutti i microcontrollers di a serie STM32.
- API di estensione, chì furnisce funzioni specifiche è persunalizati per una famiglia specifica o un numeru di parte specificu.
- L'API di livellu bassu furnisce API di livellu bassu à u livellu di u registru, cù una ottimisazione megliu ma menu portabilità.
Hanu bisognu di una cunniscenza prufonda di u MCU è e specificazioni periferiche.
I cunduttori LL sò pensati per offre una strata rapida, leggera, orientata à l'espertu, chì hè più vicinu à u hardware cà l'HAL. A cuntrariu di l'HAL, l'API LL ùn sò micca furnite per periferiche induve l'accessu ottimizzatu ùn hè micca una funzione chjave, o per quelli chì necessitanu una cunfigurazione di software pesante o una pila cumplessa di livellu superiore.
I drivers LL funzionanu: - Un inseme di funzioni per inizializà e funzioni principali periferiche secondu i paràmetri specificati in strutture di dati.
- Un inseme di funzioni per riempie strutture di dati di inizializazione cù i valori di reset currispondenti à ogni campu.
- Funzione per a de-inizializazione periferica (registri periferichi ristabiliti à i so valori predeterminati).
- Un inseme di funzioni inline per l'accessu direttu è atomicu à u registru.
- Piena indipendenza da HAL è capacità per esse aduprata in modu standalone (senza driver HAL).
- Copertura cumpleta di e funzioni periferiche supportate.
Usu perifericu di basa examples
Stu stratu include l'exampi custruiti nantu à i periferici STM32 utilizendu solu e risorse HAL è BSP.
Nota: Dimustrazione examples sò ancu dispunibuli per vede più cumplessu example scenarii cù periferiche specifiche, cum'è u MRSUBG è LPAWUR.
Livellu 1
Stu livellu hè divisu in dui sublayers:
- cumpunenti middleware
- Exampi basati nantu à i cumpunenti middleware
cumpunenti middleware
U middleware hè un inseme di biblioteche chì copre u kernel FreeRTOS™, FatFS è a libreria di protokolli Sigfox™.
L'interazzione horizontale trà i cumpunenti di sta strata hè fatta chjamendu l'API presentati.
L'interazzione verticale cù i driver di bassa capa hè fatta per mezu di callbacks specifichi è macros statici implementati in l'interfaccia di chjama di u sistema di biblioteca.
E caratteristiche principali di ogni cumpunente di middleware sò i seguenti:
- Nucleu FreeRTOS™: implementa un sistema operatore in tempu reale (RTOS), pensatu per i sistemi integrati.
- Sigfox ™: implementa a libreria di protokolli Sigfox ™ compatibile cù a rete di protokolli Sigfox ™ è include a libreria di protokolli di prova RF per pruvà contru à l'arnesi RF Sigfox™.
- FatFS: implementa u FAT genericu file modulu di sistema.
Exampi basati nantu à i cumpunenti middleware
- Ogni cumpunente middleware vene cun unu o più examples, chjamati ancu applicazioni, chì mostranu cumu aduprà.
- Integrazione exampI le chì utilizanu parechji cumpunenti middleware sò furniti ancu.
STM32CubeWL3 pacchettu firmware sopraview
Dispositivi è hardware STM32WL3x supportati
- STM32Cube offre una strata di astrazione hardware altamente portable (HAL) custruita intornu à una architettura generica. Permette à u principiu di custruzzione di strati, cum'è l'usu di a strata di middleware per implementà e so funzioni senza sapè in profondità ciò chì MCU hè utilizatu. Questu migliurà a reutilizazione di u codice di a biblioteca è assicura una portabilità faciule à altri dispositi.
- Inoltre, cù a so architettura stratificata, STM32CubeWL3 offre un supportu cumpletu per tutta a linea di prudutti STM32WL3x.
- L'utilizatore deve solu definisce a macro ghjusta in stm32wl3x.h.
- A Tabella 1 mostra a macro da definisce secondu u dispusitivu di linea di produttu STM32WL3x utilizatu. Questa macro deve ancu esse definita in u preprocessore di compilatore.
Table 1. Macros per a linea di produttu STM32WL3x
Macro definitu in STM32WL3X.h | Dispositivi di linea di produttu STM32WL3x |
stm32wl3x | Microcontroller STM32WL30xx Microcontroller STM32WL31xx Microcontroller STM32WL33xx |
Table 2. Boards for STM32WL3x product line
Cunsigliu | Dispositivi supportati da a scheda STM32WL3x |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
U pacchettu MCU STM32CubeWL3 pò eseguisce nantu à qualsiasi hardware compatible. L'utilizatori aghjurnà i driver BSP per portà l'examples nantu à e so schede, se queste anu e stesse caratteristiche di hardware (cum'è LED o buttoni).
U pacchettu di firmware hè finituview
- A suluzione STM32CubeWL3 MCU Package hè furnita in un solu pacchettu zip, cù a struttura mostrata in Figura 3.
Attenzione: L'utilizatore ùn deve micca mudificà i cumpunenti files. L'utilizatore pò edità solu e fonti \Projects. Per ogni bordu, un inseme di examples hè furnitu cù prughjetti preconfigurati per e catene di strumenti EWARM, MDK-ARM è STM32CubeIDE.
A Figura 4 mostra a struttura di u prugettu per i schede NUCLEO-WL33CCx.
L'exampless sò classificate secondu u livellu STM32CubeWL3 chì si applicanu. Sò chjamati cusì:
- Livellu 0 exampi sò chjamati Examples, Examples_LL, è Examples_MIX. Adupranu rispettivamente driver HAL, driver LL, è una mistura di driver HAL è LL senza alcun cumpunente di middleware. Dimustrazione exampi sò ancu dispunibili.
- Livellu 1 exampi sò chjamati Applicazioni. Forniscenu casi d'usu tipici di ogni cumpunente di middleware.
Qualchese applicazione di firmware per una certa scheda pò esse rapidamente custruita cù i prughjetti di mudelli dispunibuli in i repertorii Templates è Templates_LL.
Examples, Examples_LL, è Examples_MIX anu a listessa struttura:
- \Inc cartulare chì cuntene tutte l'intestazione files.
- \Src cartulare chì cuntene u codice fonte.
- \EWARM, \MDK-ARM, è \STM32CubeIDE cartulare chì cuntenenu u prughjettu preconfiguratu per ogni toolchain.
- readme.md è readme.html chì descrive l'exampu cumpurtamentu è l'ambiente necessariu per fà u travagliu.
Cumincià cù STM32CubeWL3
Corri un primu example
Sta rùbbrica spiega quantu simplice hè di eseguisce un primu example in STM32CubeWL3. Aduprà cum'è illustrazione a generazione di un semplice toggle LED chì funziona nantu à a scheda NUCLEO-WL33CC1:
- Scaricate u pacchettu MCU STM32CubeWL3.
- Unzip it, o eseguite u installatore se furnitu, in un cartulare di a vostra scelta.
- Assicuratevi micca di mudificà a struttura di u pacchettu indicata in Figura 3. Struttura di u pacchettu di firmware STM32CubeWL3. Nota chì hè ancu cunsigliatu di copià u pacchettu in un locu vicinu à u voluminu radicali (chì significheghja C:\ST o G:\Tests), postu chì certi IDE scontranu prublemi quandu u percorsu hè troppu longu.
Cumu eseguisce un HAL example
Prima di carricà è eseguisce un example, hè assai cunsigliatu di leghje l'exampleggimi file per ogni cunfigurazione specifica.
- Naviga à \Projects\NUCLEO-WL33CC\Examples.
- Aprite i cartulare \GPIO, poi \GPIO_EXTI.
- Apertura u prugettu cù u toolchain preferitu. Un rapidu sopraview nantu à cumu apre, custruisce è eseguisce un example cù i toolchains supportati hè datu quì sottu.
- Ricostruisce tuttu files è carica l'imaghjini in a memoria di destinazione.
- Corri l'example. Per più dettagli, riferite à l'exampleggimi file.
Per apre, custruisce è eseguisce un example cù ognunu di i toolchains supportati, seguitate i passi sottu:
- EWARM:
- Sottu à l'Examples, apre u sottocartella \EWARM.
- Lanciate u spaziu di travagliu Project.eww (u nome di u spaziu di travagliu puderia cambià da un example à un altru).
- Ricostruisce tuttu files: [Prughjettu]> [Ricustruisce tuttu].
- Caricate l'imaghjini di u prughjettu: [Project]> [Debug].
- Eseguite u prugramma: [Debug]> [Vai (F5)].
- MDK-ARM:
- Sottu à l'Examples, apre u subfolder \MDK-ARM.
- Apertura u spaziu di travagliu Project.uvproj (u nome di u spaziu di travagliu pò cambià da un example à un altru).
- Ricostruisce tuttu files: [Prughjettu]> [Ricustruisce tutte e mira files].
- Caricate l'imaghjini di u prugettu: [Debug]> [Start/Stop Debug Session].
- Eseguite u prugramma: [Debug]> [Run (F5)].
- STM32CubeIDE:
- Aprite a catena di strumenti STM32CubeIDE.
- Cliccate nant'à [File]> [Switch Workspace]> [Other] è andate à u cartulare di u spaziu di travagliu STM32CubeIDE.
- Cliccate nant'à [File]> [Importazione], selezziunate [Generale]> [Progetti esistenti in u spaziu di travagliu], è dopu cliccate [Next].
- Navigate à u cartulare di u spaziu di travagliu STM32CubeIDE è selezziunate u prugettu.
- Ricustruisce tuttu u prughjettu files: Selezziunate u prughjettu in a finestra di l'Explorer di u Prughjettu dopu cliccate nantu à u menù [Project]> [Custruisce prughjettu].
- Eseguite u prugramma: [Run]> [Debug (F11)].
Sviluppà una applicazione persunalizata
Utilizà STM32CubeMX per sviluppà o aghjurnà una applicazione
- In u pacchettu MCU STM32Cube, quasi tutti i prughjetti exampi sò generati cù l'uttellu STM32CubeMX per inizializà u sistema, periferiche è middleware.
L'usu direttu di un prughjettu esistente example da u strumentu STM32CubeMX richiede STM32CubeMX 6.12.0 o superiore:
- Dopu a stallazione di STM32CubeMX, apre è, se necessariu, aghjurnà un prughjettu prupostu.
U modu più simplice per apre un prughjettu esistente hè di cliccà doppiu nantu à u *.ioc file cusì chì STM32CubeMX apre automaticamente u prughjettu è a so fonte files. STM32CubeMX genera u codice fonte di inizializazione di tali prughjetti. - U codice fonte principale di l'applicazione hè cuntenutu da i cumenti "USER CODE BEGIN" è "USER CODE END". Se a selezzione periferica è i paràmetri sò mudificati, STM32CubeMX aghjurnà a parte di inizializazione di u codice mentre priservà u codice fonte di l'applicazione principale.
- Per sviluppà un prughjettu persunalizatu cù STM32CubeMX, seguitate u prucessu passu à passu:
- Configurate tuttu u software integratu richiestu utilizendu un risolutore di cunflittu di pinout, un assistente per l'impostazione di l'arburu di u clock, una calculatrice di cunsumu di energia, è l'utilità chì esegue a cunfigurazione periferica MCU (cum'è GPIO o USART).
- Generate u codice C di inizializazione basatu nantu à a cunfigurazione scelta. Stu codice hè prontu à aduprà in parechji ambienti di sviluppu. U codice d'utilizatore hè guardatu à a prossima generazione di codice.
Per più infurmazione nantu à STM32CubeMX, riferite à u manuale d'utilizatore STM32CubeMX per a cunfigurazione STM32 è l'inizializazione di generazione di codice C (UM1718).
Applicazioni di driver
L'applicazione HAL
Questa sezione descrive i passi necessarii per creà una applicazione HAL persunalizata cù STM32CubeWL3
- Crea un prughjettu
Per creà un novu prughjettu, cuminciate sia da u prughjettu Template furnitu per ogni bordu sottu \Projects\ \Modelli o da qualsiasi prughjettu dispunibule sottu \Progetti\ \Examples o \prughjetti\ \Applicazioni (induve si riferisce à u nome di u cunsigliu).
U prughjettu Template furnisce una funzione di loop principale vacante. Tuttavia, hè un bonu puntu di partenza per capisce i paràmetri di u prugettu STM32CubeWL3. U mudellu hà e seguenti caratteristiche:- Contene u codice fonte HAL, CMSIS, è i drivers BSP, chì sò l'inseme minimu di cumpunenti necessarii per sviluppà un codice nantu à una data board.
- Contene i percorsi inclusi per tutti i cumpunenti di firmware.
- Definisce i dispositi di linea di produttu STM32WL3x supportati, chì permette à i drivers CMSIS è HAL per esse cunfigurati currettamente.
- Fornisce un utilizatore prontu à aduprà filehè preconfiguratu cum'è mostra quì sottu:
- HAL inizializatu cù a basa di tempu predeterminata cù u core SysTick Arm®.
- SysTick ISR implementatu per u scopu HAL_Delay ().
- Nota: Quandu copiate un prughjettu esistente in un altru locu, assicuratevi chì tutti i percorsi inclusi sò aghjurnati.
- Configurate i cumpunenti di u firmware
I cumpunenti HAL è middleware offrenu un inseme di opzioni di cunfigurazione in tempu di creazione chì utilizanu macros #define dichjarate in un header file. Un mudellu di cunfigurazione file hè furnitu in ogni cumpunente, chì deve esse copiatu in u cartulare di u prughjettu (di solitu a cunfigurazione file hè chjamatu xxx_conf_template.h, u frammentu- U mudellu deve esse eliminatu quandu si copia à u cartulare di u prughjettu). A cunfigurazione file furnisce abbastanza infurmazione per capisce l'impattu di ogni opzione di cunfigurazione. L'infurmazione più dettagliata hè dispunibule in a documentazione furnita per ogni cumpunente.
- Cumincià a biblioteca HAL
Dopu à saltà à u prugramma principale, u codice di l'applicazione deve chjamà l'API HAL_Init () per inizializza a biblioteca HAL, chì porta à e seguenti attività:- Configurazione di a prefetch di memoria flash è a priorità di l'interruzzione SysTick (per mezu di macros definite in stm32 wl3x_hal_conf.h).
- Configurazione di u SysTick per generà una interruzzione ogni millisecondu à a priorità d'interruzione SysTick TICK_INT_PRIO definita in stm32wl3x_hal_conf.h.
- Impostazione di a priorità di u gruppu NVIC à 0.
- Chjama di a funzione di callback HAL_MspInit() definita in l'utilizatori stm32wl3x_hal_msp.c file per eseguisce inizializzazioni hardware di bassu livellu globale.
- Configurate u clock di u sistema
A cunfigurazione di u clock di u sistema hè fatta chjamendu e duie API descritte quì sottu:- HAL_RCC_OscConfig(): sta API cunfigura l'oscillatori interni è esterni. L'utilizatore sceglie
cunfigurà unu o tutti l'oscillatori. - HAL_RCC_ClockConfig(): sta API cunfigura a fonte di u clock di u sistema, a latenza di memoria flash, è i prescalers AHB è APB.
- HAL_RCC_OscConfig(): sta API cunfigura l'oscillatori interni è esterni. L'utilizatore sceglie
- Inizializà u perifericu
- Prima scrivite a funzione di inizializazione periferica. Procedi cusì:
- Habilita u clock perifericu.
- Configurate i GPIO periferichi.
- Configurate u canali DMA è attivate l'interruzzione DMA (se necessariu).
- Abilita l'interruzzione periferica (se necessariu).
- Edite u stm32xxx_it.c per chjamà i gestori di interruzioni necessarii (periferica è DMA), se ne necessariu.
- Prucessu di scrittura cumpleta funzioni di callback se una interruzzione periferica o DMA hè destinata à esse usata.
- In l'utilizatori main.c file, inizializza a struttura di manicu perifericu poi chjamate a funzione d'inizializazione perifèrica per inizializà u perifericu.
- Sviluppà una applicazione
À questu stage, u sistema hè prontu è u sviluppu di codice applicazione utilizatori pò principià.
L'HAL furnisce API intuitive è pronte per l'usu per cunfigurà u perifericu. Supporta polling, interrupts, è un mudellu di prugrammazione DMA, per accoglie ogni esigenza di l'applicazione. Per più dettagli nantu à cumu utilizà ogni periferica, riferite à l'ex riccuample set forniti in u pacchettu MCU STM32CubeWL3.
Attenzione: In l'implementazione HAL predeterminata, u timer SysTick hè utilizatu cum'è una basa di tempu: genera interruzioni à intervalli di tempu regulare. Se HAL_Delay () hè chjamatu da u prucessu ISR perifericu, assicuratevi chì l'interruzzione SysTick hà una priorità più alta (numericamente più bassa) cà l'interruzzione periferica. Altrimenti, u prucessu ISR di u chjamante hè bluccatu. E funzioni chì affettanu e cunfigurazioni di basa di u tempu sò dichjarate cum'è __debuli per rende pussibule l'override in casu di altre implementazioni in l'utilizatore. file (aduprendu un timer per u scopu generale, per esempiuample, o un'altra fonte di tempu). Per più dettagli, riferite à HAL_TimeBase example.
applicazione LL
Questa sezione descrive i passi necessarii per creà una applicazione LL persunalizata cù STM32CubeWL3.
- Crea un prughjettu
Per creà un novu prughjettu, sia principià da u prughjettu Templates_LL furnitu per ogni bordu sottu \Projects\ \Templates_LL o da qualsiasi prughjettu dispunibule sottu \Projects\ \Examples_ LL ( si riferisce à u nome di u cunsigliu, cum'è NUCLEO-WL32CC33).
U prughjettu di u mudellu furnisce una funzione di loop principale vacante, chì hè un bonu puntu di partenza per capisce i paràmetri di u prugettu per STM32CubeWL3. E caratteristiche principali di u mudellu sò i seguenti:- Contene i codici surghjenti di i cunduttori LL è CMSIS, chì sò l'inseme minimu di cumpunenti necessarii per sviluppà u codice nantu à una data board.
- Contene i percorsi inclusi per tutti i cumpunenti firmware necessarii.
- Selezziunate u dispusitivu di linea di produttu STM32WL3x supportatu è permette a cunfigurazione curretta di i driver CMSIS è LL.
- Fornisce utilizatori prontu à aduprà files chì sò preconfigurati cusì:
- main.h: LED è USER_BUTTON strata di astrazione di definizione.
- main.c: Cunfigurazione di u clock di u sistema per a frequenza massima.
- Port u LL exampLe:
- Copia / incollà u cartulare Templates_LL - per mantene a fonte iniziale - o aghjurnà direttamente un prughjettu Template s_LL esistente.
- Dopu, u porting cunsiste principalmente in rimpiazzà Templates_LL files da l'Examples_LL prughjettu di mira.
- Mantene tutte e parti specifiche di u bordu. Per ragioni di chiarezza, e parti specifiche di u bordu sò marcate cù specifiche tags:
- Cusì, i passi principali di porting sò i seguenti:
- Sustituisce u stm32wl3x_it.h file.
- Sustituisce u stm32wl3x_it.c file.
- Sustituisce u principale.h file è aghjurnà lu: Mantene u LED è a definizione di u buttone d'utilizatore di u mudellu LL sottu CONFIGURAZIONE SPECIFICA DI BOARD tags.
- Sustituisci lu main.c file è aghjurnà lu:
- Mantene a cunfigurazione di u clock di a funzione di u mudellu SystemClock_Config() LL sottu CONFIGURAZIONE SPECIFICA DI BOARD tags.
- Sicondu a definizione di LED, rimpiazzà ogni LDx ocurrenza cù un altru LDy dispunibule in u file principale.h.
- Cù questi mudificazione, l'example corre nantu à u bordu miratu.
Applicazioni RF, dimostrazioni, è esamples
Diversi tipi di applicazioni RF, dimustrazioni, è esampi sò dispunibuli in u pacchettu STM32CubeWL3.
Sò listati in e duie sezioni sottu.
Sub-GHz examples e manifestazioni
Questi examples dimustranu e caratteristiche principali di i periferichi radio MRSUBG è LPAWUR. Questi exampi sò dispunibuli sottu:
- Prughjetti\NUCLEO-WL33CC\Examples\MRSUBG
- Prughjetti\NUCLEO-WL33CC\Examples\LPAWUR
- Prughjetti\NUCLEO-WL33CC\Demonstrations\MRSUBG
- Prughjetti\NUCLEO-WL33CC\Demonstrations\LPAWUR
Ogni exampLe o dimustrazione sò generalmente custituiti da dui prugrammi chjamati Tx è Rx chì facenu cum'è trasmettitore è ricevitore, rispettivamente:
Examples/MRSUBG
- MRSUBG_802_15_4: una implementazione di a capa fisica definita da u standard 802.15.4. Mostra cumu cunfigurà a radiu per trasmette o riceve pacchetti 802.15.4.
- MRSUBG_BasicGeneric: Un scambiu di pacchetti basi STM32WL3x MR_SUBG.
- MRSUBG_Chat: Una applicazione simplice chì mostra cumu utilizà Tx è Rx in u stessu dispositivu.
- MRSUBG_DatabufferHandler: Un example chì mostra cumu scambià da Databuffer 0 è 1.
- MRSUBG_Sequencer AutoAck: Un example chì trasmette è riceve ricunniscenza di pacchetti (ACK) automaticamente.
- MRSUBG_WMBusSTD: Un scambiu di missaghji WM-Bus.
- WakeupRadio: Un example per pruvà u perifericu radio LPAWUR.
Dimustrazioni / MRSUBG
- MRSUBG_RTC_Button_TX: Questu example mostra cumu stabilisce u SoC in modu di deep-stop è cunfigurà u MRSUBG per svegliate u SoC pressendu PB2 per mandà un quadru o dopu a scadenza di u timer RTC.
- MRSUBG_Sequencer_Sniff: Questu example mostra cumu stabilisce u sequencer MRSUBG per operare in modu sniff. Questu example dimustra u latu ricevitore è richiede un altru dispusitivu cum'è trasmettitore.
- MRSUBG_Timer: L'applicazione pianifica parechje istanze di timer MRSUBG (cù autoreload) cù intervalli di tempu differenti.
- MRSUBG_WakeupRadio_Tx: Questu example spiega cumu stabilisce u SoC in u modu di arrestu prufonda è cunfigurà u MRSUBG per svegliate u SoC pressendu PB2 per mandà un quadru. Questu example mostra u latu trasmettitore è richiede un altru dispusitivu cum'è un ricevitore LPAWUR. U ricevitore example si trova in u cartulare NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRadio_Rx.
Manifestazioni/LPAWUR
- LPAWUR_WakeupRadio_Rx: Questu example spiega cumu stabilisce u SoC in modu deep-stop è cunfigurà u LPAWUR per svegliate u SoC quandu un quadru ghjunghje è hè ricevutu currettamente. Questu example dimustra u latu ricevitore è richiede un altru dispusitivu cum'è trasmettitore. U trasmettitore example si trova sottu à u cartulare NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_Tx.
Applicazione Sigfox™
Queste applicazioni mostranu cumu implementà un scenariu Sigfox™ è utilizate l'API Sigfox™ dispunibili. Sò dispunibuli in u percorsu di u prughjettu Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: Questa applicazione mostra cumu utilizà una interfaccia di linea di cumanda (CLI) per mandà cumandamenti chì utilizanu u protokollu Sigfox™ per mandà missaghji è eseguisce testi di precertificazione.
- Sigfox_PushButton: Questa applicazione permette a valutazione di e capacità radio di u dispositivu STM32WL33xx Sigfox™. Pressendu PB1 trasmette un quadru di prova Sigfox™.
Storia di rivisione
Table 3. Storia di rivisione di documenti
Data | Revisione | Cambiamenti |
29-mar-2024 | 1 | Liberazione iniziale. |
30-ottobre-2024 | 2 | Integrazione cumpleta di STM32CubeWL3 in STM32Cube. Aghjurnatu:
• Introduzione • Sezzione 2: caratteristiche principali STM32CubeWL3 • Sezione 3.2.1: cumpunenti Middleware • Section 4: STM32CubeWL3 pacchettu firmware sopraview • Sezione 5.1: Esecuzione di un primu example • Sezione 5.3: Applicazioni RF, dimostrazioni, è examples Aggiuntu: • Sezione 5.1.1: Cumu eseguisce un HAL example • Sezione 5.2.1: Utilizà STM32CubeMX per sviluppà o aghjurnà una applicazione • Section 6.4: Ci hè un prughjettu mudellu per MRSUBG / LPAWUR perifèricu examples? • Sezione 6.5: Cumu pò STM32CubeMX generà codice basatu nantu à u software integratu? Eliminatu: • Strumenti di PC, cumpresi Navigatore, STM32WL3 GUI, è MR-SUBG Sequencer GUI • Cumu pò WiSE-Studio IOMapper generà codice basatu nantu à u software integratu? • Navigator permette l'accessu à e risorse di u pacchettu di software? |
22-ghjennaghju-2025 | 3 | Ampliatu a gamma di dispusitivi applicabile à i microcontrollers STM32WL30xx è STM32WL31xx in Table 1. Macros per a linea di produttu STM32WL3x. |
AVVISU IMPORTANTE - LEGGIU ATTENTAMENTE
- STMicroelectronics NV è e so filiali ("ST") si riservanu u dirittu di fà cambiamenti, correzioni, miglioramenti, mudificazioni è migliure à i prudutti ST è / o à stu documentu in ogni mumentu senza avvisu. I cumpratori anu da ottene l'ultime informazioni pertinenti nantu à i prudutti ST prima di fà ordini. I prudutti ST sò venduti in cunfurmità cù i termini è e cundizioni di vendita di ST in vigore à u mumentu di a ricunniscenza di l'ordine.
- I cumpratori sò solu rispunsevuli di a scelta, a selezzione è l'usu di i prudutti ST è ST ùn assume micca responsabilità per l'assistenza di l'applicazione o u disignu di i prudutti di l'acquirente.
- Nisuna licenza, espressa o implicita, à qualsiasi dirittu di pruprietà intellettuale hè cuncessa da ST quì.
- A rivendita di i prudutti ST cù disposizioni diverse da l'infurmazioni stabilite quì annullerà ogni garanzia accordata da ST per tali pruduttu.
- ST è u logo ST sò marchi di ST. Per infurmazioni supplementari nantu à i marchi ST, riferite à www.st.com/trademarks. Tutti l'altri prudutti o nomi di serviziu sò a pruprietà di i so rispettivi pruprietarii.
- L'infurmazioni in stu documentu rimpiazzanu è rimpiazzanu l'infurmazioni furnite prima in qualsiasi versione precedente di stu documentu.
- © 2025 STMicroelectronics - Tutti i diritti riservati
FAQ
Quandu deve aduprà HAL invece di i drivers LL?
I driver HAL offrenu API d'altu livellu è orientate à funzioni, cù un altu livellu di portabilità. A cumplessità di u produttu o periferica hè oculata per l'utilizatori finali. I cunduttori LL offrenu API di livellu di registru di livellu bassu cù una ottimisazione megliu ma menu portable. Hanu bisognu di una cunniscenza approfondita di e specificazioni di u produttu o IP.
Cumu l'API d'inizializazione LL sò attivate?
A definizione di l'API d'inizializazione di LL è i literali è i prototipi di strutture di risorse associate hè cundizionata da u switch di compilazione USE_FULL_LL_DRIVER. Per pudè utilizà l'API d'inizializazione LL, aghjunghje stu cambiamentu in u preprocessore di compilatore di toolchain.
Ci hè un prughjettu di mudellu per MRSUBG/LPAWUR periferica examples?
Per creà un novu MRSUBG o LPAWUR exampu prughjettu, sia partendu da u prughjettu scheletru furnitu sottu PrughjettiNUCLEO- 33CC Examples MRSUBG o ProjectsNUCLEO-WL33CC Examples LPAWUR o da qualsiasi prughjettu dispunibule sottu sti stessi repertori.
Cumu STM32CubeMX pò generà codice basatu nantu à u software integratu?
STM32CubeMX hà una cunniscenza integrata di i microcontrollers STM32, cumprese i so periferichi è u software, chì li permette di furnisce una rapprisintazioni gràfica à l'utilizatore è generà .h o .c. files basatu nantu à a cunfigurazione di l'utilizatore.
Documenti / Risorse
![]() |
Microcontroller ST STM32WL3x [pdfManuale d'usu STM32WL3x Microcontrollers, STM32WL3x, Microcontrollers |