ST-LOGO

Microcontroller STM32WL3x

STM32WL3x-Microcontrollers-PRODUCT

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ò.

STM32WL3x-Microcontrollers-FIG-1

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.

STM32WL3x-Microcontrollers-FIG-2

STM32CubeWL3 architettura sopraview

  • A suluzione STM32CubeWL3 MCU Package hè custruita intornu à trè livelli indipendenti chì interagiscenu facilmente cum'è descrittu in Figura 2.

STM32WL3x-Microcontrollers-FIG-3

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.

STM32WL3x-Microcontrollers-FIG-4

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.

STM32WL3x-Microcontrollers-FIG-5

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:

  1. Scaricate u pacchettu MCU STM32CubeWL3.
  2. Unzip it, o eseguite u installatore se furnitu, in un cartulare di a vostra scelta.
  3. 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.

  1. Naviga à \Projects\NUCLEO-WL33CC\Examples.
  2. Aprite i cartulare \GPIO, poi \GPIO_EXTI.
  3. 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.
  4. Ricostruisce tuttu files è carica l'imaghjini in a memoria di destinazione.
  5. 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:
    1. Sottu à l'Examples, apre u sottocartella \EWARM.
    2. Lanciate u spaziu di travagliu Project.eww (u nome di u spaziu di travagliu puderia cambià da un example à un altru).
    3. Ricostruisce tuttu files: [Prughjettu]> [Ricustruisce tuttu].
    4. Caricate l'imaghjini di u prughjettu: [Project]> [Debug].
    5. Eseguite u prugramma: [Debug]> [Vai (F5)].
  • MDK-ARM:
    1. Sottu à l'Examples, apre u subfolder \MDK-ARM.
    2. Apertura u spaziu di travagliu Project.uvproj (u nome di u spaziu di travagliu pò cambià da un example à un altru).
    3. Ricostruisce tuttu files: [Prughjettu]> [Ricustruisce tutte e mira files].
    4. Caricate l'imaghjini di u prugettu: [Debug]> [Start/Stop Debug Session].
    5. Eseguite u prugramma: [Debug]> [Run (F5)].
  • STM32CubeIDE:
    1. Aprite a catena di strumenti STM32CubeIDE.
    2. Cliccate nant'à [File]> [Switch Workspace]> [Other] è andate à u cartulare di u spaziu di travagliu STM32CubeIDE.
    3. Cliccate nant'à [File]> [Importazione], selezziunate [Generale]> [Progetti esistenti in u spaziu di travagliu], è dopu cliccate [Next].
    4. Navigate à u cartulare di u spaziu di travagliu STM32CubeIDE è selezziunate u prugettu.
    5. 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].
    6. 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:
    1. 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).
    2. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

  1. 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.
  2. 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:STM32WL3x-Microcontrollers-FIG-6
    • 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

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *