Paquet de programari STM32WL3x
Especificacions
- Nom del producte: paquet de programari STM32CubeWL3
- Compatibilitat: microcontroladors STM32WL3x
- Característiques principals:
- API de capa baixa (LL) i de capa d'abstracció de maquinari (HAL).
- Components de middleware del nucli SigfoxTM, FatFS i FreeRTOSTM
- Aplicacions i demostracions
Instruccions d'ús del producte
Primers passos
Per començar a utilitzar el paquet de programari STM32CubeWL3, seguiu aquests passos:
- Baixeu el paquet de programari des de l'oficial weblloc.
- Instal·leu l'entorn de desenvolupament necessari (per exemple, STM32CubeIDE, EWARM, MDK-ARM).
- Consulteu l'exampfitxers i aplicacions proporcionades com a orientació.
STM32CubeWL3 Architecture Overview
El paquet de programari STM32CubeWL3 es basa en tres nivells principals
- Nivell 0: Capa d'abstracció de maquinari (HAL) i controladors BSP.
- Nivell 1: Aplicacions, biblioteques i components basats en protocols.
Preguntes freqüents (FAQ)
P: Quines són les característiques principals del paquet de programari STM32CubeWL3?
R: Les característiques principals inclouen API de capa baixa i HAL, components de middleware com SigfoxTM, FatFS, nucli FreeRTOSTM, aplicacions i demostracions.
Introducció
STM32Cube és una iniciativa original de STMicroelectronics per millorar significativament la productivitat del dissenyador reduint l'esforç de desenvolupament, el temps i el cost. STM32Cube cobreix tota la cartera STM32.
STM32Cube inclou:
- Un conjunt d'eines de desenvolupament de programari fàcils d'utilitzar per cobrir el desenvolupament del projecte des de la concepció fins a la realització, entre les quals destaquen:
- STM32CubeMX, una eina de configuració de programari gràfic que permet la generació automàtica de codi d'inicialització C mitjançant assistents gràfics
- STM32CubeIDE, una eina de desenvolupament tot en un amb configuració de perifèrics, generació de codi, compilació de codi i funcions de depuració
- STM32CubeCLT, un conjunt d'eines de desenvolupament de línia d'ordres tot en un amb compilació de codi, programació de taulers i funcions de depuració
- STM32CubeProgrammer (STM32CubeProg), una eina de programació disponible en versions gràfiques i de línia d'ordres
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), potents eines de supervisió per ajustar el comportament i el rendiment de les aplicacions STM32 en temps real
- Paquets MCU i MPU STM32Cube, plataformes integrals de programari incrustat específiques per a cada sèrie de microcontroladors i microprocessadors (com ara STM32CubeWL3 per a la línia de productes STM32WL3x), que inclouen:
- Capa d'abstracció de maquinari STM32Cube (HAL), que garanteix la portabilitat màxima a tota la cartera STM32
- API de capa baixa STM32Cube, que garanteixen el millor rendiment i petjades amb un alt grau de control de l'usuari sobre] el maquinari
- Un conjunt coherent de components de middleware com ara el nucli FreeRTOS™, FatFS i Sigfox™
- Totes les utilitats de programari incrustat amb conjunts complets de perifèrics i aplicatius, examples
- Paquets d'expansió STM32Cube, que contenen components de programari integrats que complementen les funcionalitats dels paquets MCU i MPU STM32Cube amb:
-
- Extensions de middleware i capes aplicatives
- Exampfitxers que s'executen en algunes plaques de desenvolupament de STMicroelectronics específiques
Aquest manual d'usuari descriu com començar amb el paquet STM32CubeWL3 MCU.
La secció 2 descriu les característiques principals de l'STM32CubeWL3 i la secció 3 ofereix una descripcióview de la seva arquitectura i de l'estructura del paquet MCU.
Informació general
STM32CubeWL3 executa aplicacions de demostració per sota de GHz, inclosos els binaris Sigfox™, en microcontroladors de la línia de productes STM32WL3x basats en el processador Arm® Cortex®-M0+.
Els microcontroladors STM32WL3x incorporen el perifèric de ràdio RF d'última generació de STMicroelectronics, optimitzat per a un consum d'energia molt baix i un excel·lent rendiment de ràdio, per a una vida útil de la bateria inigualable.
Nota: Arm és una marca comercial registrada d'Arm Limited (o les seves filials) als EUA i/o en altres llocs.
Característiques principals de STM32CubeWL3
- El paquet STM32CubeWL3 MCU funciona amb microcontroladors STM32 de 32 bits basats en el processador Arm® Cortex®‑M0+. Reuneix, en un sol paquet, tots els components de programari incrustat genèrics necessaris per desenvolupar una aplicació per als microcontroladors de la línia de productes STM32WL3x.
- El paquet inclou API de capa baixa (LL) i de capa d'abstracció de maquinari (HAL) que cobreixen el maquinari del microcontrolador, juntament amb un ampli conjunt d'exampels que s'executen a les plaques STMicroelectronics. Les API HAL i LL estan disponibles en una llicència BSD de codi obert per a la comoditat de l'usuari. També inclou els components de middleware del nucli Sigfox™, FatFS i FreeRTOS™.
- El paquet STM32CubeWL3 MCU també ofereix diverses aplicacions i demostracions que implementen tots els seus components de middleware.
- La disposició dels components del paquet STM32CubeWL3 MCU s'il·lustra a la figura 1.
Figura 1. Components del paquet STM32CubeWL3 MCU
STM32CubeWL3 arquitectura acabadaview
La solució del paquet STM32CubeWL3 MCU està construïda al voltant de tres nivells independents que interactuen fàcilment tal com es descriu a la figura 2. Nivell 0
Aquest nivell es divideix en tres subcapes:
- Paquet de suport de la junta (BSP).
- Capa d'abstracció de maquinari (HAL):
- Controladors perifèrics HAL
- Conductors de capa baixa
- Ús bàsic de perifèrics examples.
Paquet de suport de la junta (BSP)
Aquesta capa ofereix un conjunt d'API relacionades amb els components de maquinari de les plaques de maquinari (com ara LED, botons i controladors COM). Es compon de dues parts:
- Component:
Aquest és el controlador relatiu al dispositiu extern de la placa i no a l'STM32. El controlador del component proporciona API específiques als components externs del controlador BSP i podria ser portàtil a qualsevol altra placa. - Controlador BSP:
Permet enllaçar els controladors de components a una placa específica i proporciona un conjunt d'API fàcils d'utilitzar. La regla de nomenclatura de l'API és BSP_FUNCT_Action().
Exampfitxer: BSP_LED_Init(), BSP_LED_On()
BSP es basa en una arquitectura modular que permet portar fàcilment qualsevol maquinari amb només implementar les rutines de baix nivell.
Capa d'abstracció de maquinari (HAL) i capa baixa (LL)
Els STM32CubeWL3 HAL i LL són complementaris i cobreixen una àmplia gamma de requisits d'aplicació:
- Els controladors HAL ofereixen API altament portàtils orientades a funcions d'alt nivell. Oculten l'MCU i la complexitat del perifèric a l'usuari final.
Els controladors HAL proporcionen API genèriques multi-instància orientades a funcions, que simplifiquen la implementació de l'aplicació d'usuari proporcionant processos preparats per utilitzar. Per example, per als perifèrics de comunicació (I2C, UART i altres), proporciona API que permeten inicialitzar i configurar el perifèric, gestionar la transferència de dades en funció del procés d'enquesta, interrupció o DMA i gestionar els errors de comunicació que puguin sorgir durant la comunicació. Les API del controlador HAL es divideixen en dues categories:
- API genèriques, que proporcionen funcions comunes i genèriques a tots els microcontroladors de la sèrie STM32.
- API d'extensió, que proporcionen funcions específiques i personalitzades per a una família específica o un número de peça específic.
- Les API de capa baixa proporcionen API de baix nivell a nivell de registre, amb una millor optimització però menys portabilitat. Requereixen un coneixement profund de la MCU i les especificacions perifèriques.
Els controladors LL estan dissenyats per oferir una capa ràpida i lleugera orientada als experts que està més a prop del maquinari que el HAL. Contràriament a l'HAL, les API LL no es proporcionen per a perifèrics on l'accés optimitzat no és una característica clau, o per a aquells que requereixen una configuració de programari pesada o una pila de nivell superior complexa.
Els controladors LL inclouen:
- Conjunt de funcions per inicialitzar les característiques principals del perifèric segons els paràmetres especificats a les estructures de dades.
- Un conjunt de funcions per omplir les estructures de dades d'inicialització amb els valors de restabliment corresponents a cada camp.
- Funció per a la desinicialització de perifèrics (registres perifèrics restaurats als seus valors per defecte).
- Un conjunt de funcions en línia per a l'accés directe i al registre atòmic.
- Total independència de HAL i capacitat d'utilitzar-se en mode autònom (sense controladors HAL).
- Cobertura total de les funcions perifèriques compatibles.
Ús bàsic de perifèrics examples
Aquesta capa tanca l'exampfitxers construïts sobre els perifèrics STM32 utilitzant només els recursos HAL i BSP.
Demostració exampLes també estan disponibles per mostrar ex. més complexosample escenaris amb perifèrics específics, com el MRSUBG i LPAWUR.
Nivell 1
Aquest nivell es divideix en dues subcapes:
- Components de middleware
- Exampfitxers basats en els components de middleware
Components de middleware
El middleware és un conjunt de biblioteques que cobreixen el nucli FreeRTOS™, FatFS i la biblioteca de protocols Sigfox™. La interacció horitzontal entre els components d'aquesta capa es fa trucant a les API destacades.
La interacció vertical amb els controladors de capa baixa es realitza mitjançant devolucions de trucada específiques i macros estàtiques implementades a la interfície de trucada del sistema de biblioteques.
Les característiques principals de cada component de middleware són les següents:
- Nucli FreeRTOS™: implementa un sistema operatiu en temps real (RTOS), dissenyat per a sistemes incrustats.
- Sigfox™: implementa la biblioteca de protocols Sigfox™ compatible amb la xarxa de protocols Sigfox™ i inclou la biblioteca de protocols de prova de RF per provar amb eines de RF Sigfox™.
- FatFS: implementa el FAT genèric file mòdul del sistema.
Exampfitxers basats en els components de middleware
Cada component de middleware ve amb un o més examples, també anomenades aplicacions, que mostren com utilitzar-les. Integració exampTambé es proporcionen fitxers que utilitzen diversos components de middleware.
S'ha acabat el paquet de microprogramari STM32CubeWL3view
Dispositius i maquinari STM32WL3x compatibles
STM32Cube ofereix una capa d'abstracció de maquinari (HAL) altament portàtil construïda al voltant d'una arquitectura genèrica. Permet el principi de les capes acumulades, com ara utilitzar la capa de middleware per implementar les seves funcions sense saber, en profunditat, quin MCU s'utilitza. Això millora la reutilització del codi de la biblioteca i garanteix una fàcil portabilitat a altres dispositius.
- A més, amb la seva arquitectura en capes, STM32CubeWL3 ofereix un suport total per a tota la línia de productes STM32WL3x.
- L'usuari només ha de definir la macro correcta a stm32wl3x.h.
La taula 1 mostra la macro que cal definir en funció del dispositiu de la línia de productes STM32WL3x utilitzat. Aquesta macro també s'ha de definir al preprocessador del compilador.
Taula 1. Macros per a la línia de productes STM32WL3x
Macro definida a stm32wl3x.h | Dispositius de la línia de productes STM32WL3x |
stm32wl33 | Microcontroladors STM32WL33xx |
STM32CubeWL3 inclou un ric conjunt d'exampfitxers i aplicacions a tots els nivells, facilitant la comprensió i l'ús de qualsevol controlador HAL o components de programari intermedi. Aquests exampEls fitxers s'executen a les plaques de STMicroelectronics que es mostren a la taula 2.
Junta | Dispositius compatibles amb la placa STM32WL3x |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
El paquet STM32CubeWL3 MCU es pot executar amb qualsevol maquinari compatible. Els usuaris simplement actualitzen els controladors BSP per portar l'exampfitxers als seus taulers, si aquests tenen les mateixes característiques de maquinari (com ara LED o botons).
S'ha acabat el paquet de firmwareview
La solució del paquet STM32CubeWL3 MCU es proporciona en un sol paquet zip amb l'estructura que es mostra a la figura 3.
Figura 3. Estructura del paquet de microprogramari STM32CubeWL3
Precaució:
L'usuari no ha de modificar els components files. L'usuari només pot editar les fonts \Projects.
Per a cada tauler, un conjunt d'examples es proporciona amb projectes preconfigurats per a les cadenes d'eines EWARM, MDK-ARM i STM32CubeIDE.
La figura 4 mostra l'estructura del projecte per a les plaques NUCLEO-WL33CCx.
L'exampEls fitxers es classifiquen en funció del nivell STM32CubeWL3 al qual s'apliquen. S'anomenen de la següent manera:
- Nivell 0 examples s'anomenen Examples, Examples_LL, i Examples_MIX. Utilitzen respectivament controladors HAL, controladors LL i una barreja de controladors HAL i LL sense cap component de programari intermedi. Demostració examples també estan disponibles.
- Nivell 1 exampEls fitxers s'anomenen aplicacions. Proporcionen casos d'ús típics de cada component de middleware.
Qualsevol aplicació de microprogramari per a una placa determinada es pot crear ràpidament utilitzant els projectes de plantilles disponibles als directoris Plantilles i Plantilles_LL.
Examples, Examples_LL, i Examples_MIX tenen la mateixa estructura:
- Carpeta \Inc que conté tota la capçalera files.
- Carpeta \Src que conté el codi font.
- Carpetes \EWARM, \MDK-ARM i \STM32CubeIDE que contenen el projecte preconfigurat per a cada cadena d'eines.
- readme.md i readme.html descrivint l'exampel comportament i l'entorn necessari perquè funcioni.
Com començar amb STM32CubeWL3
Fent un primer example
Aquesta secció explica com de senzill és executar un primer exampli dins de STM32CubeWL3. Utilitza com a il·lustració la generació d'un commutador LED senzill que s'executa a la placa NUCLEO-WL33CC1:
- Baixeu el paquet STM32CubeWL3 MCU.
- Descomprimiu-lo, o executeu l'instal·lador, si el teniu, en un directori que trieu.
- Assegureu-vos de no modificar l'estructura del paquet que es mostra a la figura 3. Estructura del paquet del microprogramari STM32CubeWL3. Tingueu en compte que també es recomana copiar el paquet en una ubicació propera al volum arrel (és a dir, C:\ST o G:\Tests), ja que alguns IDE troben problemes quan el camí és massa llarg.
Com executar un HAL example
Abans de carregar i executar un example, és molt recomanable llegir l'exampllegiu-me file per a qualsevol configuració específica.
- Navegueu a \Projectes\NUCLEO-WL33CC\Examples.
- Obriu les carpetes \GPIO i, a continuació, \GPIO_EXTI.
- Obriu el projecte amb la cadena d'eines preferida. Una passada ràpidaview sobre com obrir, construir i executar un exampA continuació es mostra el fitxer amb les cadenes d'eines compatibles.
- Reconstrueix-ho tot files i carregueu la imatge a la memòria de destinació.
- Executar l'example. Per a més detalls, consulteu l'exampllegiu-me file.
Per obrir, construir i executar un exampamb cadascuna de les cadenes d'eines compatibles, seguiu els passos següents:
- EWARM:
- Sota l'Examples, obriu la subcarpeta \EWARM.
- Inicieu l'espai de treball Project.eww (el nom de l'espai de treball pot canviar d'un exampli a un altre).
- Reconstrueix-ho tot files: [Projecte]>[Reconstrueix-ho tot].
- Carregueu la imatge del projecte: [Projecte]>[Depuració].
- Executeu el programa: [Debug]>[Go (F5)].
- MDK-ARM:
- Sota l'Examples, obriu la subcarpeta \MDK-ARM.
- Obriu l'espai de treball Project.uvproj (el nom de l'espai de treball pot canviar d'un exampli a un altre).
- Reconstrueix-ho tot files: [Projecte]>[Reconstrueix tots els objectius files].
- Carregueu la imatge del projecte: [Depuració]>[Iniciar/Aturar la sessió de depuració].
- Executeu el programa: [Debug]>[Run (F5)].
- STM32CubeIDE:
- Obriu la cadena d'eines STM32CubeIDE.
- Fer clic a [File]>[Canvia l'espai de treball]>[Altres] i navegueu fins al directori de l'espai de treball STM32CubeIDE.
- Fer clic a [File]>[Importa], seleccioneu [General]>[Projectes existents a l'espai de treball] i, a continuació, feu clic a [Següent].
- Navegueu al directori de l'espai de treball STM32CubeIDE i seleccioneu el projecte.
- Reconstrueix tot el projecte files: Seleccioneu el projecte a la finestra Explorador de projectes i feu clic a
Menú [Projecte]>[Construeix projecte]. - Executeu el programa: [Run]>[Debug (F11)].
Desenvolupament d'una aplicació personalitzada
Ús de STM32CubeMX per desenvolupar o actualitzar una aplicació
Al paquet STM32Cube MCU, gairebé tots els projectes, exampEls fitxers es generen amb l'eina STM32CubeMX per inicialitzar el sistema, els perifèrics i el programari intermediari.
L'ús directe d'un projecte existent exampel fitxer de l'eina STM32CubeMX requereix STM32CubeMX 6.12.0 o superior:
- Després de la instal·lació de STM32CubeMX, obriu i, si cal, actualitzeu un projecte proposat.
La manera més senzilla d'obrir un projecte existent és fent doble clic al *.ioc file de manera que STM32CubeMX obre automàticament el projecte i la seva font files. STM32CubeMX genera el codi font d'inicialització d'aquests projectes. - El codi font principal de l'aplicació està inclòs pels comentaris "COMENÇAR CODI D'USUARI" i "FINAL DEL CODI D'USUARI". Si es modifiquen la selecció i la configuració del perifèric, STM32CubeMX actualitza la part d'inicialització del codi tot conservant el codi font principal de l'aplicació.
Per desenvolupar un projecte personalitzat amb STM32CubeMX, seguiu el procés pas a pas:
- Configureu tot el programari incrustat necessari mitjançant un solucionador de conflictes de pinout, un ajudant de configuració de l'arbre del rellotge, una calculadora de consum d'energia i la utilitat que realitza la configuració del perifèric MCU (com ara GPIO o USART).
- Genereu el codi C d'inicialització en funció de la configuració seleccionada. Aquest codi està llest per utilitzar-se en diversos entorns de desenvolupament. El codi d'usuari es conserva a la següent generació de codi.
Per obtenir més informació sobre STM32CubeMX, consulteu el manual d'usuari STM32CubeMX per a la configuració i la generació de codi C d'inicialització STM32 (UM1718).
Aplicacions de controladors
Aplicació HAL
Aquesta secció descriu els passos necessaris per crear una aplicació HAL personalitzada mitjançant STM32CubeWL3:
- Crea un projecte
Per crear un projecte nou, comenceu des del projecte Plantilla proporcionat per a cada pissarra a \Projectes\< STM32xxx_yyy>\Plantilles o des de qualsevol projecte disponible a \Projectes\ \Exampl es o \Projectes\ \Aplicacions (on fa referència al nom de la junta). El projecte Template proporciona una funció de bucle principal buida. Tanmateix, és un bon punt de partida per entendre la configuració del projecte STM32CubeWL32. La plantilla té les següents característiques:- Conté el codi font HAL, els controladors CMSIS i BSP, que són el conjunt mínim de components necessaris per desenvolupar un codi en una placa determinada.
- Conté els camins inclosos per a tots els components del microprogramari.
- Defineix els dispositius de la línia de productes STM32WL3x compatibles, permetent que els controladors CMSIS i HAL es configuren correctament.
- Proporciona un usuari llest per al seu ús fileestà preconfigurat com es mostra a continuació:
- HAL inicialitzat amb la base de temps predeterminada amb el nucli Arm® SysTick.
- SysTick ISR implementat amb el propòsit de HAL_Delay().
Nota: Quan copieu un projecte existent a una altra ubicació, assegureu-vos que tots els camins inclosos estiguin actualitzats.
- Configureu els components del microprogramari
Els components HAL i middleware ofereixen un conjunt d'opcions de configuració en temps de compilació mitjançant macros #define declarades en una capçalera file. Una configuració de plantilla file es proporciona dins de cada component, que s'ha de copiar a la carpeta del projecte (normalment la configuració file s'anomena xxx_conf_template.h, el fragment _template s'ha d'eliminar en copiar-lo a la carpeta del projecte). La configuració file proporciona prou informació per entendre l'impacte de cada opció de configuració. La informació més detallada està disponible a la documentació proporcionada per a cada component. - Inicieu la biblioteca HAL
Després de saltar al programa principal, el codi de l'aplicació ha de cridar l'API HAL_Init() per inicialitzar la biblioteca HAL, que realitza les tasques següents:- Configuració de la recuperació prèvia de la memòria flash i la prioritat d'interrupció SysTick (mitjançant macros definides a stm3 2wl3x_hal_conf.h).
- Configuració del SysTick per generar una interrupció cada mil·lisegon a la prioritat d'interrupció SysTick TICK_INT_PRIO definida a stm32wl3x_hal_conf.h.
- Configuració de la prioritat del grup NVIC a 0.
- Crida de la funció de devolució de trucada HAL_MspInit() definida a l'usuari stm32wl3x_hal_msp.c file per realitzar inicialitzacions globals de maquinari de baix nivell.
- Configura el rellotge del sistema
La configuració del rellotge del sistema es fa trucant a les dues API que es descriuen a continuació:- HAL_RCC_OscConfig(): aquesta API configura els oscil·ladors interns i externs. L'usuari tria configurar un o tots els oscil·ladors.
- HAL_RCC_ClockConfig(): aquesta API configura la font del rellotge del sistema, la latència de la memòria flash i els preescalers AHB i APB.
- Inicialitzar el perifèric
- Primer escriu la funció d'inicialització del perifèric. Procediu de la següent manera:
- Activa el rellotge perifèric.
- Configureu els GPIO perifèrics.
- Configureu el canal DMA i activeu la interrupció DMA (si cal).
- Activeu la interrupció del perifèric (si cal).
- Editeu el fitxer stm32xxx_it.c per trucar als controladors d'interrupcions necessaris (perifèrics i DMA), si cal.
- Escriviu les funcions de devolució de trucada completes del procés si s'ha d'utilitzar una interrupció perifèrica o DMA.
- A l'usuari principal.c file, inicialitzeu l'estructura de maneig del perifèric i, a continuació, crideu la funció d'inicialització del perifèric per inicialitzar el perifèric.
- Desenvolupar una aplicació
En aquest stage, el sistema està preparat i el desenvolupament del codi de l'aplicació d'usuari pot començar.
El HAL proporciona API intuïtives i llestes per utilitzar per configurar el perifèric. Admet sondejos, interrupcions i un model de programació DMA, per adaptar-se a qualsevol requisit d'aplicació. Per obtenir més detalls sobre com utilitzar cada perifèric, consulteu l'exampconjunt de fitxers proporcionat al paquet STM32CubeWL3 MCU.
Precaució:
A la implementació HAL predeterminada, el temporitzador SysTick s'utilitza com a base de temps: genera interrupcions a intervals de temps regulars. Si es crida HAL_Delay() des del procés ISR perifèric, assegureu-vos que la interrupció SysTick tingui una prioritat més alta (numèricament més baixa) que la interrupció perifèrica. En cas contrari, el procés ISR de la persona que truca és
bloquejat. Les funcions que afecten les configuracions de la base de temps es declaren com a __febles per fer possible la substitució en cas d'altres implementacions a l'usuari. file (utilitzant un temporitzador de propòsit general, per exempleample, o una altra font de temps).
Per obtenir més detalls, consulteu l'ex. HAL_TimeBaseample.
Aplicació LL
Aquesta secció descriu els passos necessaris per crear una aplicació LL personalitzada mitjançant STM32CubeWL3.
- Crea un projecte
Per crear un projecte nou, comenceu des del projecte Templates_LL proporcionat per a cada tauler a \Projectes\ \Templates_LL o des de qualsevol projecte disponible a \Projectes\ \E xamples_LL ( fa referència al nom de la placa, com ara NUCLEO-WL32CC33).
El projecte de plantilla proporciona una funció de bucle principal buida, que és un bon punt de partida per entendre la configuració del projecte per a STM32CubeWL3. Les característiques principals de la plantilla són les següents:- Conté els codis font dels controladors LL i CMSIS, que són el conjunt mínim de components necessaris per desenvolupar el codi en una placa determinada.
- Conté els camins inclosos per a tots els components de microprogramari necessaris.
- Selecciona el dispositiu de la línia de productes STM32WL3x compatible i permet la configuració correcta dels controladors CMSIS i LL.
- Proporciona un usuari llest per al seu ús files que estan preconfigurades de la següent manera:
- main.h: capa d'abstracció de definició LED i USER_BUTTON.
- main.c: configuració del rellotge del sistema per a la freqüència màxima.
- Port el LL exampLI:
- Copieu/enganxeu la carpeta Templates_LL (per mantenir la font inicial) o actualitzeu directament un projecte Templates_LL existent.
- Aleshores, la portabilitat consisteix principalment a substituir Templates_LL files per l'Exampprojecte objectiu les_LL.
- Conserveu totes les parts específiques del tauler. Per motius de claredat, les parts específiques del tauler estan marcades amb específiques tags:
Així, els passos principals de la portabilitat són els següents:
- Substituïu el fitxer stm32wl3x_it.h file.
- Substituïu el fitxer stm32wl3x_it.c file.
- Substituïu el principal.h file i actualitzeu-lo: mantingueu el LED i la definició del botó d'usuari de la plantilla LL a CONFIGURACIÓ ESPECÍFICA DE LA TAULA tags.
- Substituïu el principal.c file i actualitzeu-lo:
- Mantingueu la configuració del rellotge de la funció de plantilla SystemClock_Config() LL a CONFIGURACIÓ ESPECÍFICA DE LA PLACA tags.
- Depenent de la definició del LED, substituïu cada aparició de LDx per una altra LDy disponible al file principal.h.
Amb aquestes modificacions, l'example s'executa al tauler de destinació.
Aplicacions de RF, demostracions i examples
Diferents tipus d'aplicacions de RF, demostracions i exampEls fitxers estan disponibles al paquet STM32CubeWL3. S'enumeren a les dues seccions següents.
Sub-GHz examples i demostracions
Aquests examples mostren les principals característiques dels perifèrics de ràdio MRSUBG i LPAWUR. Aquests examples estan disponibles a:
- Projectes\NUCLEO-WL33CC\Examples\MRSUBG
- Projectes\NUCLEO-WL33CC\Examples\LPAWUR
- Projectes\NUCLEO-WL33CC\Demostracions\MRSUBG
- Projectes\NUCLEO-WL33CC\Demonstrations\LPAWUR
Cada exampEl fitxer o demostració consisteix generalment en dos programes anomenats Tx i Rx que actuen com a transmissor i receptor, respectivament:
- Examples/MRSUBG
- MRSUBG_802_15_4: una implementació de la capa física definida per l'estàndard 802.15.4. Mostra com configurar la ràdio per transmetre o rebre paquets 802.15.4.
- MRSUBG_BasicGeneric: un intercanvi de paquets bàsics STM32WL3x MR_SUBG.
- MRSUBG_Chat: una aplicació senzilla que mostra com utilitzar Tx i Rx al mateix dispositiu.
- MRSUBG_DatabufferHandler: un exampfitxer que mostra com canviar des de Databuffer 0 i 1.
- MRSUBG_Sequencer AutoAck: un exampfitxer que transmet i rep els reconeixements de paquets (ACK) automàticament.
- MRSUBG_WMBusSTD: intercanvi de missatges WM-Bus.
- WakeupRadio: un exampli per provar el perifèric de ràdio LPAWUR.
- Demostracions/MRSUBG
- MRSUBG_RTC_Button_TX: aquest exempleampLe mostra com configurar el SoC en mode d'aturada profunda i configurar el MRSUBG per activar el SoC prement PB2 per enviar un fotograma o després de l'expiració del temporitzador RTC.
- MRSUBG_Sequencer_Sniff: Aquest exampLe mostra com configurar el seqüenciador MRSUBG perquè funcioni en mode sniff. Aquest example mostra el costat del receptor i requereix un altre dispositiu com a transmissor.
- MRSUBG_Timer: l'aplicació programa diverses instàncies del temporitzador MRSUBG (amb càrrega automàtica) amb diferents intervals de temps.
- MRSUBG_WakeupRadio_Tx: aquest example explica com configurar el SoC en mode d'aturada profunda i configurar el MRSUBG per activar el SoC prement PB2 per enviar un fotograma. Aquest example mostra el costat del transmissor i requereix un altre dispositiu com a receptor LPAWUR. El receptor exampel fitxer es troba a la carpeta NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
- Manifestacions/LPAWUR
- LPAWUR_WakeupRadio_Rx: aquest example explica com configurar el SoC en mode d'aturada profunda i configurar el LPAWUR per despertar el SoC quan arriba un fotograma i es rep correctament. Aquest example mostra el costat del receptor i requereix un altre dispositiu com a transmissor. L'emissor exampel fitxer es troba a la carpeta NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.
Aplicació Sigfox™
Aquestes aplicacions mostren com implementar un escenari Sigfox™ i utilitzar les API de Sigfox™ disponibles. Estan disponibles a la ruta del projecte Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: aquesta aplicació mostra com utilitzar una interfície de línia d'ordres (CLI) per enviar ordres que utilitzen el protocol Sigfox™ per enviar missatges i realitzar proves de precertificació.
- Sigfox_PushButton: aquesta aplicació permet avaluar les capacitats de ràdio del dispositiu STM32WL33xx Sigfox™. En prémer PB1 es transmet un marc de prova Sigfox™.
Preguntes freqüents
- Quan he d'utilitzar els controladors HAL en lloc dels LL?
Els controladors HAL ofereixen API d'alt nivell i orientades a funcions, amb un alt nivell de portabilitat. La complexitat del producte o del perifèric està oculta per als usuaris finals.
Els controladors LL ofereixen API de nivell de registre de capa baixa, amb una millor optimització però menys portàtil. Requereixen un coneixement profund de les especificacions de producte o IP. - Es poden utilitzar els controladors HAL i LL junts? En cas afirmatiu, quines són les limitacions?
És possible utilitzar tant controladors HAL com LL. Utilitzeu el HAL per a la fase d'inicialització del perifèric i, a continuació, gestioneu les operacions d'E/S amb controladors LL.
La diferència principal entre HAL i LL és que els controladors HAL requereixen crear i utilitzar identificadors per a la gestió d'operacions, mentre que els controladors LL operen directament en registres perifèrics. La barreja de HAL i LL s'il·lustra a l'Examples_MIX examples. - Com s'activen les API d'inicialització de LL?
La definició de les API d'inicialització de LL i els recursos associats (estructures, literals i prototips) està condicionada pel commutador de compilació USE_FULL_LL_DRIVER.
Per poder utilitzar les API d'inicialització de LL, afegiu aquest commutador al preprocessador del compilador de la cadena d'eines. - Hi ha algun projecte de plantilla per al perifèric MRSUBG/LPAWUR examples?
Per crear un nou MRSUBG o LPAWUR, example projecte, comenceu des del projecte esquelet proporcionat a \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG o \Projects\NUCLEO-WL33CC\Examples\LPAWUR, o des de qualsevol projecte disponible sota aquests mateixos directoris. - Com pot STM32CubeMX generar codi basat en programari incrustat?
STM32CubeMX té un coneixement integrat dels microcontroladors STM32, inclosos els seus perifèrics i programari, que li permet proporcionar una representació gràfica a l'usuari i generar *.h o *.c files en funció de la configuració de l'usuari.
Historial de revisions
Taula 3. Historial de revisions de documents
Data | Revisió | Canvis |
29-mar-2024 | 1 | Alliberament inicial. |
30-octubre-2024 | 2 | Integració total de STM32CubeWL3 in STM32Cube. Actualitzat:
Eliminat:
|
Documents/Recursos
![]() |
Paquet de programari ST STM32WL3x [pdfInstruccions Paquet de programari STM32WL3x, STM32WL3x, paquet de programari, paquet |