STM32WL3x-loigo

Pacchettu Software STM32WL3x

STM32WL3x-Package-Software -PRODCUCT

Specificazioni

  • Nome di u produttu: pacchettu software STM32CubeWL3
  • Compatibilità: microcontrollers STM32WL3x
  • Caratteristiche principali:
    • API di bassa strata (LL) è di astrazione di hardware (HAL).
    • Cumpunenti di middleware di kernel SigfoxTM, FatFS è FreeRTOSTM
    • Applicazioni è manifestazioni

Istruzzioni per l'usu di u produttu

Cuminciatu
Per cumincià à aduprà u pacchettu software STM32CubeWL3, seguitate sti passi:

  1. Scaricate u pacchettu di software da l'ufficiale websitu.
  2. Installa l'ambiente di sviluppu necessariu (per esempiu, STM32CubeIDE, EWARM, MDK-ARM).
  3. Riferite à l'example è applicazioni furnite per a guida.

STM32CubeWL3 Architecture Overview
U pacchettu di software STM32CubeWL3 hè custruitu intornu à trè livelli principali

  • Livellu 0: Livellu di astrazione di hardware (HAL) è driver BSP.
  • Livellu 1: Applicazioni, biblioteche è cumpunenti basati nantu à u protocolu.

Domande Frequenti (FAQ)

Q: Chì sò e caratteristiche principali di u pacchettu di software STM32CubeWL3?
A: E caratteristiche principali includenu API di bassa è HAL, cumpunenti di middleware cum'è SigfoxTM, FatFS, kernel FreeRTOSTM, applicazioni è manifestazioni.

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:

  • Un inseme di strumenti di sviluppu di software user-friendly per copre u sviluppu di u prugettu da a cuncepimentu à a realizazione, trà] chì 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 di bassa strata, assicurendu u megliu rendimentu è impronte cù un altu gradu di cuntrollu di l'utilizatori nantu à] 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 prudutti 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 solu pacchettu, tutti i cumpunenti di software integrati generici necessarii per sviluppà una applicazione per i microcontrollers di linea di produttu STM32WL3x.
  • 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.

Figura 1. STM32CubeWL3 MCU Package cumpunenti 

STM32WL3x-Pacchettu-Software (2)

STM32CubeWL3 architettura sopraview

A suluzione STM32CubeWL3 MCU Package hè custruita intornu à trè livelli indipendenti chì interagiscenu facilmente cum'è descrittu in Figura 2. STM32WL3x-Pacchettu-Software (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 portable 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:
  1. API generiche, chì furniscenu funzioni cumuni è generichi à tutti i microcontrollers di a serie STM32.
  2. 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.
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 tutale 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
stm32wl33 Microcontrollers STM32WL33xx

STM32CubeWL3 presenta un riccu inseme di example è applicazioni à tutti i livelli, facenu fàciule à capisce è aduprà ogni cumpunenti di driver HAL o middleware. Questi exampi file funzionanu nantu à e schede STMicroelectronics elencate in a Tabella 2.

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 simpricimenti 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.
Figura 3. Struttura di u pacchettu di firmware STM32CubeWL3

STM32WL3x-Pacchettu-Software (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-Pacchettu-Software (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 Templ ates è 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: Selezziunà u prugettu in a finestra di u Prughjettu Explorer dopu cliccate nant'à u
    [Project]> [Custruisce prughjettu] menu.
  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\<STM32xxx_yyy>\Templates o da qualsiasi prughjettu dispunibule sottu \Projects\ \Exampl es o \Projects\ \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 STM32CubeWL32. 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 fragmentu _template deve esse sguassatu 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 stm3 2wl3x_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 di 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\ \E xamples_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 Templa tes_LL esistenti.
    • 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-Pacchettu-Software (1)

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_WakeupRad io_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_WakeupRad io_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™.

FAQ

  1. 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.
  2. I driver HAL è LL ponu esse aduprati inseme? Sì sì, chì sò e limitazioni?
    Hè pussibule aduprà i driver HAL è LL. Aduprate l'HAL per a fase di inizializazione periferica è poi gestisce l'operazioni I/O cù i driver LL.
    A maiò diffarenza trà HAL è LL hè chì i driver HAL necessitanu di creà è aduprà manichi per a gestione di l'operazione mentre i driver LL operanu direttamente nantu à i registri periferici. U mischju di HAL è LL hè illustratu in l'Examples_MIX examples.
  3. Cumu l'API d'inizializazione LL sò attivate?
    A definizione di l'API d'inizializazione LL è e risorse assuciate (strutture, letterali è prototipi) 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.
  4. Ci hè un prughjettu di mudellu per MRSUBG/LPAWUR periferica examples?
    Per creà un novu MRSUBG o LPAWUR example prughjettu, sia partendu da u prughjettu scheletru furnitu in \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG o \Projects\NUCLEO-WL33CC\Examples\LPAWUR, o da qualsiasi prughjettu dispunibule sottu à sti stessi cartulari.
  5. 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.

Storia di rivisione

Table 3. Storia di rivisione di documenti

Data Revisione Cambiamenti
29-mar-2024 1 Liberazione iniziale.
30-ottobre-2024 2 Integrazione piena di STM32CubeWL3 in STM32Cube. Aghjurnatu:

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?

Documenti / Risorse

Pacchettu Software ST STM32WL3x [pdf] Istruzzioni
STM32WL3x Software Package, STM32WL3x, Software Package, Package

Referenze

Lascia un cumentu

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