STM32WL3x-loigo

Programski paket STM32WL3x

STM32WL3x-Programski-Paket-IZDELEK

Specifikacije

  • Ime izdelka: programski paket STM32CubeWL3
  • Združljivost: mikrokontrolerji STM32WL3x
  • Glavne značilnosti:
    • API-ji za nizko plast (LL) in plast abstrakcije strojne opreme (HAL).
    • Komponente vmesne programske opreme jedra SigfoxTM, FatFS in FreeRTOSTM
    • Aplikacije in demonstracije

Navodila za uporabo izdelka

Kako začeti
Če želite začeti uporabljati programski paket STM32CubeWL3, sledite tem korakom:

  1. Prenesite programski paket z uradne strani webmesto.
  2. Namestite potrebno razvojno okolje (npr. STM32CubeIDE, EWARM, MDK-ARM).
  3. Sklicujte se na exampdatoteke in aplikacije, ki so na voljo za vodenje.

Konec arhitekture STM32CubeWL3view
Programski paket STM32CubeWL3 je zgrajen okoli treh glavnih ravni

  • 0. stopnja: Sloj abstrakcije strojne opreme (HAL) in gonilniki BSP.
  • 1. stopnja: Aplikacije, knjižnice in komponente, ki temeljijo na protokolu.

Pogosto zastavljena vprašanja (FAQ)

V: Katere so glavne značilnosti programskega paketa STM32CubeWL3?
O: Glavne funkcije vključujejo API-je nizke plasti in HAL, komponente vmesne programske opreme, kot so SigfoxTM, FatFS, jedro FreeRTOSTM, aplikacije in predstavitve.

Uvod

STM32Cube je izvirna pobuda STMicroelectronics za znatno izboljšanje produktivnosti oblikovalca z zmanjšanjem truda, časa in stroškov pri razvoju. STM32Cube pokriva celoten portfelj STM32.

STM32Cube vključuje:

  • Nabor uporabniku prijaznih orodij za razvoj programske opreme, ki pokrivajo razvoj projekta od zasnove do realizacije, med] ki so:
    • STM32CubeMX, orodje za konfiguracijo grafične programske opreme, ki omogoča samodejno generiranje inicializacijske kode C z uporabo grafičnih čarovnikov
    • STM32CubeIDE, vse-v-enem razvojno orodje s periferno konfiguracijo, generiranjem kode, prevajanjem kode in funkcijami za odpravljanje napak
    • STM32CubeCLT, vse-v-enem nabor orodij za razvoj ukazne vrstice s prevajanjem kode, programiranjem plošč in funkcijami za odpravljanje napak
    • STM32CubeProgrammer (STM32CubeProg), programsko orodje, ki je na voljo v grafični različici in različici ukazne vrstice
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), zmogljiva nadzorna orodja za natančno nastavitev obnašanja in delovanja aplikacij STM32 v realnem času
  • Paketi STM32Cube MCU in MPU, celovite platforme vgrajene programske opreme, specifične za vsako serijo mikrokrmilnika in mikroprocesorja (kot je STM32CubeWL3 za linijo izdelkov STM32WL3x), ki vključujejo:
    • Abstrakcijski sloj strojne opreme STM32Cube (HAL), ki zagotavlja maksimalno prenosljivost v celotnem portfelju STM32
    • Nizkoplastni API-ji STM32Cube, ki zagotavljajo najboljšo zmogljivost in odtis z visoko stopnjo nadzora uporabnika nad] strojno opremo
    • Dosleden nabor komponent vmesne programske opreme, kot so jedro FreeRTOS™, FatFS in Sigfox™
    • Vsi vgrajeni pripomočki programske opreme s popolnimi nabori perifernih in aplikativnih examples
  • Razširitveni paketi STM32Cube, ki vsebujejo vgrajene programske komponente, ki dopolnjujejo funkcionalnosti paketov STM32Cube MCU in MPU z:
    • Razširitve vmesne programske opreme in aplikativne plasti
    • Examples, ki deluje na nekaterih posebnih razvojnih ploščah STMicroelectronics

Ta uporabniški priročnik opisuje, kako začeti uporabljati paket MCU STM32CubeWL3.
Razdelek 2 opisuje glavne značilnosti STM32CubeWL3, razdelek 3 pa ponuja pregledview njegove arhitekture in strukture paketa MCU.

Splošne informacije

STM32CubeWL3 izvaja predstavitvene aplikacije pod GHz, vključno z binarnimi datotekami Sigfox™, na mikrokrmilnikih linije izdelkov STM32WL3x, ki temeljijo na procesorju Arm® Cortex®‑M0+.
Mikrokrmilniki STM32WL3x vključujejo najsodobnejšo RF radijsko periferijo STMicroelectronics, ki je združljiva s sub-GHz, optimizirana za izjemno nizko porabo energije in odlično radijsko zmogljivost, za neprimerljivo življenjsko dobo baterije.
Opomba: Arm je registrirana blagovna znamka Arm Limited (ali njenih podružnic) v ZDA in/ali drugje.

Glavne značilnosti STM32CubeWL3

  • Paket MCU STM32CubeWL3 deluje na 32-bitnih mikrokontrolerjih STM32, ki temeljijo na procesorju Arm® Cortex®‑M0+. V enem samem paketu združuje vse generične komponente vdelane programske opreme, ki so potrebne za razvoj aplikacije za mikrokontrolerje linije izdelkov STM32WL3x.
  • Paket vključuje API-je nizke plasti (LL) in plasti abstrakcije strojne opreme (HAL), ki pokrivajo strojno opremo mikrokrmilnika, skupaj z obsežnim naborom exampki se izvajajo na ploščah STMicroelectronics. API-ja HAL in LL sta za udobje uporabnika na voljo v odprtokodni licenci BSD. Vključuje tudi komponente vmesne programske opreme jedra Sigfox™, FatFS in FreeRTOS™.
  • Paket MCU STM32CubeWL3 ponuja tudi več aplikacij in predstavitev, ki implementirajo vse komponente vmesne programske opreme.
  • Postavitev komponente paketa MCU STM32CubeWL3 je prikazana na sliki 1.

Slika 1. Komponente paketa MCU STM32CubeWL3 

STM32WL3x-Programski paket (2)

Konec arhitekture STM32CubeWL3view

Rešitev STM32CubeWL3 MCU Package je zgrajena okoli treh neodvisnih ravni, ki zlahka medsebojno delujejo, kot je opisano na sliki 2. STM32WL3x-Programski paket (3)0. stopnja
Ta raven je razdeljena na tri podsloje:

  • Paket podpore za plošče (BSP).
  • Sloj abstrakcije strojne opreme (HAL):
    • gonilniki perifernih naprav HAL
    • Nizkoslojni gonilniki
  • Osnovna uporaba perifernih naprav npramples.

Paket podpore za plošče (BSP)
Ta plast ponuja niz API-jev glede na komponente strojne opreme v ploščah strojne opreme (kot so LED, gumbi in gonilniki COM). Sestavljen je iz dveh delov:

  • Komponenta:
    To je gonilnik glede na zunanjo napravo na plošči in ne glede na STM32. Gonilnik komponente ponuja specifične API-je zunanjim komponentam gonilnika BSP in je lahko prenosljiv na katero koli drugo ploščo.
  • Gonilnik BSP:

Omogoča povezovanje gonilnikov komponent z določeno ploščo in zagotavlja nabor uporabniku prijaznih API-jev. Pravilo za poimenovanje API-ja je BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP temelji na modularni arhitekturi, ki omogoča enostavno prenašanje na katero koli strojno opremo s samo implementacijo nizkonivojskih rutin.

Abstrakcija strojne opreme (HAL) in nizka plast (LL)
STM32CubeWL3 HAL in LL se dopolnjujeta in pokrivata širok spekter aplikacijskih zahtev:

  • Gonilniki HAL ponujajo zelo prenosljive API-je na visoki ravni, ki so usmerjeni v funkcije. Končnemu uporabniku skrijejo MCU in periferno zapletenost.
    Gonilniki HAL zagotavljajo generične večinstančne API-je, usmerjene v funkcije, ki poenostavijo implementacijo uporabniške aplikacije z zagotavljanjem procesov, pripravljenih za uporabo. Na primerample, za komunikacijske periferne naprave (I2C, UART in druge) ponuja API-je, ki omogočajo inicializacijo in konfiguracijo perifernih naprav, upravljanje prenosa podatkov na podlagi pozivanja, prekinitve ali procesa DMA ter obravnavanje komunikacijskih napak, ki se lahko pojavijo med komunikacijo. API-ji gonilnika HAL so razdeljeni v dve kategoriji:
  1. Generični API-ji, ki zagotavljajo skupne in generične funkcije za vse mikrokontrolerje serije STM32.
  2. Razširitveni API-ji, ki zagotavljajo posebne in prilagojene funkcije za določeno družino ali določeno številko dela.
  • API-ji nizke ravni zagotavljajo API-je nizke ravni na ravni registra z boljšo optimizacijo, vendar manjšo prenosljivostjo. Zahtevajo poglobljeno poznavanje specifikacij MCU in perifernih naprav.
    Gonilniki LL so zasnovani tako, da nudijo hitro in lahko strokovno usmerjeno plast, ki je bližje strojni opremi kot HAL. V nasprotju s HAL API-ji LL niso na voljo za zunanje naprave, kjer optimiziran dostop ni ključna lastnost, ali za tiste, ki zahtevajo konfiguracijo težke programske opreme ali kompleksen sklad na višji ravni.

Lastnosti gonilnikov LL:

  • Niz funkcij za inicializacijo glavnih funkcij perifernih naprav v skladu s parametri, določenimi v podatkovnih strukturah.
  • Nabor funkcij za zapolnitev inicializacijskih podatkovnih struktur z vrednostmi ponastavitve, ki ustrezajo vsakemu polju.
  • Funkcija za deinicializacijo perifernih naprav (periferni registri ponovljeni na privzete vrednosti).
  • Niz vgrajenih funkcij za neposredni in atomski dostop do registra.
  • Popolna neodvisnost od HAL in zmožnost uporabe v samostojnem načinu (brez gonilnikov HAL).
  • Popolna pokritost podprtih perifernih funkcij.

Osnovna uporaba perifernih naprav npramples
Ta plast obdaja exampdatoteke, zgrajene prek perifernih naprav STM32 z uporabo samo virov HAL in BSP.
Predstavitev prampdatoteke so na voljo tudi za prikaz bolj zapletenih nprample s posebnimi zunanjimi napravami, kot sta MRSUBG in LPAWUR.

1. stopnja
Ta raven je razdeljena na dve podplasti:

  • Komponente vmesne programske opreme
  • Exampdatoteke, ki temeljijo na komponentah vmesne programske opreme

Komponente vmesne programske opreme
Vmesna programska oprema je niz knjižnic, ki pokriva jedro FreeRTOS™, FatFS in knjižnico protokolov Sigfox™. Horizontalna interakcija med komponentami tega sloja poteka s klicanjem predstavljenih API-jev.
Navpična interakcija z gonilniki nižje plasti poteka prek posebnih povratnih klicev in statičnih makrov, implementiranih v klicnem vmesniku knjižničnega sistema.
Glavne značilnosti vsake komponente vmesne programske opreme so naslednje:

  • Jedro FreeRTOS™: implementira operacijski sistem v realnem času (RTOS), zasnovan za vgrajene sisteme.
  • Sigfox™: implementira knjižnico protokolov Sigfox™, ki je združljiva z omrežjem protokolov Sigfox™, in vključuje knjižnico protokolov za testiranje RF za testiranje orodij RF Sigfox™.
  • FatFS: implementira generični FAT file sistemski modul.

Exampdatoteke, ki temeljijo na komponentah vmesne programske opreme
Vsaka komponenta vmesne programske opreme ima enega ali več exampdatoteke, imenovane tudi aplikacije, ki prikazujejo, kako jih uporabljati. Integracija exampNa voljo so tudi datoteke, ki uporabljajo več komponent vmesne programske opreme.

Konec paketa vdelane programske opreme STM32CubeWL3view

Podprte naprave in strojna oprema STM32WL3x
STM32Cube ponuja visoko prenosljivo plast abstrakcije strojne opreme (HAL), zgrajeno okoli generične arhitekture. Omogoča načelo nadgradnje plasti, kot je uporaba plasti vmesne programske opreme za izvajanje njihovih funkcij, ne da bi podrobno vedeli, kateri MCU se uporablja. To izboljša možnost ponovne uporabe kode knjižnice in zagotavlja enostavno prenosljivost na druge naprave.

  • Poleg tega STM32CubeWL3 s svojo večplastno arhitekturo ponuja popolno podporo za celotno linijo izdelkov STM32WL3x.
  • Uporabnik mora samo definirati pravi makro v stm32wl3x.h.

Tabela 1 prikazuje makro, ki ga je treba definirati glede na uporabljeno napravo linije izdelkov STM32WL3x. Ta makro mora biti definiran tudi v predprocesorju prevajalnika.
Tabela 1. Makri za linijo izdelkov STM32WL3x

Makro je definiran v stm32wl3x.h Naprave linije izdelkov STM32WL3x
stm32wl33 Mikrokrmilniki STM32WL33xx

STM32CubeWL3 vsebuje bogat nabor exampdatoteke in aplikacije na vseh ravneh, kar olajša razumevanje in uporabo katerega koli gonilnika HAL ali komponent vmesne programske opreme. Ti bivšiampizvajajo na ploščah STMicroelectronics, navedenih v tabeli 2.

Deska Naprave, ki podpirajo ploščo STM32WL3x
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

Paket MCU STM32CubeWL3 lahko deluje na kateri koli združljivi strojni opremi. Uporabniki preprosto posodobijo gonilnike BSP za prenos priloženega exampdatoteke na svojih ploščah, če imajo te enake lastnosti strojne opreme (kot so LED ali gumbi).

Konec paketa vdelane programske opremeview
Rešitev STM32CubeWL3 MCU Package je na voljo v enem paketu zip s strukturo, prikazano na sliki 3.
Slika 3. Struktura paketa vdelane programske opreme STM32CubeWL3

STM32WL3x-Programski paket (4)

Pozor:

Uporabnik ne sme spreminjati komponent files. Uporabnik lahko ureja samo vire \Projects.
Za vsako ploščo je komplet examples je opremljen s predhodno konfiguriranimi projekti za orodne verige EWARM, MDK-ARM in STM32CubeIDE.
Slika 4 prikazuje strukturo projekta za plošče NUCLEO-WL33CCx. STM32WL3x-Programski paket (5)

Bivšiampdatoteke so razvrščene glede na raven STM32CubeWL3, za katero veljajo. Imenujejo se na naslednji način:

  • Raven 0 nprampse imenujejo Examples, npramples_LL in Examples_MIX. Uporabljajo gonilnike HAL, gonilnike LL in mešanico gonilnikov HAL in LL brez kakršne koli komponente vmesne programske opreme. Predstavitev pramples so na voljo tudi.
  • Raven 1 nprampdatoteke se imenujejo aplikacije. Zagotavljajo tipične primere uporabe vsake komponente vmesne programske opreme.

Vsako aplikacijo vdelane programske opreme za določeno ploščo je mogoče hitro zgraditi z uporabo predlog projektov, ki so na voljo v imenikih Templ ates in Templates_LL.

Examples, npramples_LL in Examples_MIX imajo enako strukturo:

  • \Inc mapa, ki vsebuje celotno glavo files.
  • Mapa \Src, ki vsebuje izvorno kodo.
  • \EWARM, \MDK-ARM in \STM32CubeIDE mape, ki vsebujejo vnaprej konfiguriran projekt za vsako orodno verigo.
  • readme.md in readme.html, ki opisujeta exampvedenje in potrebno okolje, da deluje.

Začetek uporabe STM32CubeWL3

Vodenje prvega bivšegaample
V tem razdelku je razloženo, kako preprosto je zagnati prvi example znotraj STM32CubeWL3. Kot ilustracijo uporablja ustvarjanje preprostega preklopnika LED, ki deluje na plošči NUCLEO-WL33CC1:

  1. Prenesite paket STM32CubeWL3 MCU.
  2. Razpakirajte ga ali zaženite namestitveni program, če je na voljo, v imenik po vaši izbiri.
  3. Pazite, da ne spremenite strukture paketa, prikazane na sliki 3. Struktura paketa vdelane programske opreme STM32CubeWL3. Upoštevajte, da je priporočljivo tudi kopiranje paketa na lokacijo blizu korenskega nosilca (kar pomeni C:\ST ali G:\Tests), saj nekateri IDE naletijo na težave, ko je pot predolga.

Kako zagnati HAL example
Preden naložite in zaženete example, je zelo priporočljivo prebrati example readme file za katero koli posebno konfiguracijo.

  1. Prebrskajte do \Projects\NUCLEO-WL33CC\Examples.
  2. Odprite mapo \GPIO, nato \GPIO_EXTI.
  3. Odprite projekt z želeno verigo orodij. Na hitro čezview o tem, kako odpreti, zgraditi in zagnati exampdatoteka s podprtimi orodnimi verigami je podana spodaj.
  4. Ponovno zgradite vse files in naloži sliko v ciljni pomnilnik.
  5. Zaženi example. Za več podrobnosti glej example readme file.

Odpreti, zgraditi in zagnati exampz vsako od podprtih orodnih verig sledite spodnjim korakom:

  • EWARM:
  1. Pod Examples, odprite podmapo \EWARM.
  2. Zaženite delovni prostor Project.eww (ime delovnega prostora se lahko spremeni iz enega nprample drugemu).
  3. Ponovno zgradite vse files: [Projekt]>[Obnovi vse].
  4. Naložite sliko projekta: [Projekt]>[Odpravljanje napak].
  5. Zaženite program: [Debug]>[Go (F5)].
  • MDK-ARM:
  1. Pod Examples, odprite podmapo \MDK-ARM.
  2. Odprite delovni prostor Project.uvproj (ime delovnega prostora se lahko spremeni iz enega nprample drugemu).
  3. Ponovno zgradite vse files: [Projekt]>[Obnovi vse cilje files].
  4. Naložite sliko projekta: [Debug]>[Start/Stop Debug Session].
  5. Zaženite program: [Debug]>[Run (F5)].
  • STM32CubeIDE:
  1. Odprite verigo orodij STM32CubeIDE.
  2. Kliknite na [File]>[Switch Workspace]>[Other] in poiščite imenik delovnega prostora STM32CubeIDE.
  3. Kliknite na [File]>[Uvozi], izberite [Splošno]>[Obstoječi projekti v delovni prostor] in kliknite [Naprej].
  4. Poiščite imenik delovnega prostora STM32CubeIDE in izberite projekt.
  5. Obnovite ves projekt files: Izberite projekt v oknu Project Explorer in kliknite na
    Meni [Projekt]>[Gradi projekt].
  6.  Zaženite program: [Zaženi]>[Odpravljanje napak (F11)].

Razvoj aplikacije po meri

Uporaba STM32CubeMX za razvoj ali posodobitev aplikacije
V paketu STM32Cube MCU so skoraj vsi projekti nprampdatoteke so ustvarjene z orodjem STM32CubeMX za inicializacijo sistema, zunanjih naprav in vmesne programske opreme.

Neposredna uporaba obstoječega projekta nprampdatoteka iz orodja STM32CubeMX zahteva STM32CubeMX 6.12.0 ali novejšo različico:

  • Po namestitvi STM32CubeMX odprite in po potrebi posodobite predlagani projekt.
    Najenostavnejši način za odpiranje obstoječega projekta je dvoklik na *.ioc file tako da STM32CubeMX samodejno odpre projekt in njegov izvor files. STM32CubeMX ustvari inicializacijsko izvorno kodo takih projektov.
  • Glavno izvorno kodo aplikacije vsebujeta komentarja »UPORABNIŠKA KODA ZAČETEK« in »KONEC UPORABNIŠKE KODE«. Če se izbira perifernih naprav in nastavitve spremenijo, STM32CubeMX posodobi inicializacijski del kode, hkrati pa ohrani izvorno kodo glavne aplikacije.

Za razvoj projekta po meri s STM32CubeMX sledite postopku po korakih:

  1. Konfigurirajte vso zahtevano vdelano programsko opremo z reševalnikom navzkrižij pinout, pomočnikom za nastavitev drevesa ure, kalkulatorjem porabe energije in pripomočkom, ki izvaja konfiguracijo periferne enote MCU (kot je GPIO ali USART).
  2. Generirajte inicializacijsko kodo C na podlagi izbrane konfiguracije. Ta koda je pripravljena za uporabo v več razvojnih okoljih. Uporabniška koda se ohrani pri naslednji generaciji kode.
    Za več informacij o STM32CubeMX glejte uporabniški priročnik STM32CubeMX za generiranje kode C za konfiguracijo in inicializacijo STM32 (UM1718).

Vozniške aplikacije

HAL aplikacija
Ta razdelek opisuje korake, potrebne za ustvarjanje aplikacije HAL po meri z uporabo STM32CubeWL3:

  1. Ustvarite projekt
    Če želite ustvariti nov projekt, začnite s projektom Template, ki je na voljo za vsako ploščo pod \Projects\< STM32xxx_yyy>\Templates ali iz katerega koli razpoložljivega projekta pod \Projects\ \Nprampl es ali \Projekti\ \Aplikacije (kjer se nanaša na ime plošče). Projekt Template nudi prazno funkcijo glavne zanke. Vendar pa je dobro izhodišče za razumevanje nastavitev projekta STM32CubeWL32. Predloga ima naslednje značilnosti:
    • Vsebuje izvorno kodo HAL, gonilnike CMSIS in BSP, ki so minimalni nabor komponent, potrebnih za razvoj kode na določeni plošči.
    • Vsebuje vključene poti za vse komponente vdelane programske opreme.
    • Določa podprte naprave linije izdelkov STM32WL3x, kar omogoča pravilno konfiguracijo gonilnikov CMSIS in HAL.
    • Zagotavlja uporabnika, pripravljenega za uporabo fileje vnaprej konfiguriran, kot je prikazano spodaj:
    • HAL je inicializiran s privzeto časovno osnovo z Arm® jedrom SysTick.
    • SysTick ISR implementiran za namen HAL_Delay().
      Opomba: Pri kopiranju obstoječega projekta na drugo lokacijo se prepričajte, da so vse vključene poti posodobljene.
  2. Konfigurirajte komponente vdelane programske opreme
    Komponente HAL in vmesne programske opreme ponujajo nabor konfiguracijskih možnosti v času gradnje z uporabo makrov #define, navedenih v glavi file. Konfiguracija predloge file je na voljo v vsaki komponenti, ki jo je treba kopirati v mapo projekta (običajno konfiguracija file se imenuje xxx_conf_template.h, je treba fragment _template odstraniti, ko ga kopirate v mapo projekta). Konfiguracija file zagotavlja dovolj informacij za razumevanje vpliva vsake konfiguracijske možnosti. Podrobnejše informacije so na voljo v dokumentaciji, ki je priložena posamezni komponenti.
  3. Zaženite knjižnico HAL
    Po skoku v glavni program mora koda aplikacije poklicati API HAL_Init() za inicializacijo knjižnice HAL, ki izvaja naslednje naloge:
    • Konfiguracija vnaprejšnjega pridobivanja pomnilnika flash in prioritete prekinitev SysTick (prek makrov, definiranih v stm3 2wl3x_hal_conf.h).
    •  Konfiguracija SysTick za ustvarjanje prekinitve vsako milisekundo pri prioriteti prekinitve SysTick TICK_INT_PRIO, definirani v stm32wl3x_hal_conf.h.
    • Nastavitev prioritete skupine NVIC na 0.
    • Klic funkcije povratnega klica HAL_MspInit(), definiran v uporabniku stm32wl3x_hal_msp.c file za izvedbo globalnih nizkonivojskih inicializacij strojne opreme.
  4. Konfigurirajte sistemsko uro
    Konfiguracija sistemske ure se izvede s klicem dveh API-jev, opisanih spodaj:
    • HAL_RCC_OscConfig(): ta API konfigurira notranje in zunanje oscilatorje. Uporabnik se odloči za konfiguracijo enega ali vseh oscilatorjev.
    • HAL_RCC_ClockConfig(): ta API konfigurira vir sistemske ure, zakasnitev bliskovnega pomnilnika ter preddelilnika AHB in APB.
  5. Inicializirajte periferijo
    •  Najprej napišite periferno inicializacijsko funkcijo. Nadaljujte kot sledi:
    • Omogoči periferno uro.
    • Konfigurirajte periferne GPIO.
    • Konfigurirajte kanal DMA in omogočite prekinitev DMA (če je potrebno).
    • Omogočite periferno prekinitev (če je potrebno).
    • Uredite stm32xxx_it.c za klic zahtevanih upravljavcev prekinitev (perifernih in DMA), če je potrebno.
    •  Pišite popolne funkcije povratnega klica procesa, če je predvidena uporaba periferne prekinitve ali DMA.
    •  V uporabniškem main.c file, inicializirajte periferno strukturo ročaja in nato pokličite funkcijo za inicializacijo periferije, da inicializirate periferijo.
  6. Razvijte aplikacijo
    Pri tem stage, sistem je pripravljen in razvoj kode uporabniške aplikacije se lahko začne.
    HAL ponuja intuitivne in za uporabo pripravljene API-je za konfiguracijo zunanje opreme. Podpira anketiranje, prekinitve in programski model DMA, da se prilagodi vsem zahtevam aplikacije. Za več podrobnosti o uporabi vsake zunanje naprave glejte rich exampnabor datotek, ki je na voljo v paketu MCU STM32CubeWL3.

Pozor:
V privzeti izvedbi HAL se časovnik SysTick uporablja kot časovna osnova: ustvarja prekinitve v rednih časovnih intervalih. Če je HAL_Delay() poklican iz perifernega procesa ISR, se prepričajte, da ima prekinitev SysTick višjo prioriteto (številčno nižjo) kot periferna prekinitev. V nasprotnem primeru je postopek ISR klicatelja
blokiran. Funkcije, ki vplivajo na konfiguracije časovne baze, so deklarirane kot __šibke, da omogočijo preglasitev v primeru drugih implementacij v uporabniku file (z uporabo splošnega časovnika, nprample ali drug časovni vir).
Za več podrobnosti glejte primer HAL_TimeBaseample.

LL aplikacija
Ta razdelek opisuje korake, potrebne za ustvarjanje aplikacije LL po meri z uporabo STM32CubeWL3.

  1. Ustvarite projekt
    Če želite ustvariti nov projekt, bodisi začnite s projektom Templates_LL, ki je na voljo za vsako ploščo pod \Projekti\ \Templates_LL ali iz katerega koli razpoložljivega projekta pod \Projects\ \E xamples_LL ( se nanaša na ime plošče, kot je NUCLEO-WL32CC33).
    Projekt predloge zagotavlja prazno funkcijo glavne zanke, kar je dobro izhodišče za razumevanje nastavitev projekta za STM32CubeWL3. Glavne značilnosti predloge so naslednje:
    • Vsebuje izvorne kode gonilnikov LL in CMSIS, ki so najmanjši nabor komponent, potrebnih za razvoj kode na določeni plošči.
    • Vsebuje vključene poti za vse potrebne komponente vdelane programske opreme.
    • Izbere podprto napravo linije izdelkov STM32WL3x in omogoči pravilno konfiguracijo gonilnikov CMSIS in LL.
    • Zagotavlja uporabnika, pripravljenega za uporabo fileki so vnaprej konfigurirani na naslednji način:
    • main.h: definicijska plast abstrakcije LED in USER_BUTTON.
    • main.c: Konfiguracija sistemske ure za največjo frekvenco.
  2. Priključite LL example:
    • Kopirajte/prilepite mapo Templates_LL – da obdržite začetni vir – ali neposredno posodobite obstoječi projekt Templa tes_LL.
    • Nato je prenos v glavnem sestavljen iz zamenjave Templates_LL files strani Examples_LL ciljni projekt.
    • Ohranite vse dele, specifične za ploščo. Zaradi jasnosti so posamezni deli plošče označeni s posebnimi tags:
      STM32WL3x-Programski paket (1)

Tako so glavni koraki prenosa naslednji:

  • Zamenjajte stm32wl3x_it.h file.
  • Zamenjajte stm32wl3x_it.c file.
  • Zamenjajte glavni.h file in jo posodobite: obdržite definicijo LED in uporabniškega gumba predloge LL pod POSAMEZNO KONFIGURACIJO PLOŠČE tags.
  • Zamenjajte glavno.c file in ga posodobite:
  • Ohranite konfiguracijo ure funkcije predloge SystemClock_Config() LL pod POSAMEZNO KONFIGURACIJO PLOŠČE tags.
  • Odvisno od definicije LED zamenjajte vsak pojav LDx z drugim LDy, ki je na voljo v file glavna.h.

S temi spremembami je example teče na ciljni plošči.

RF aplikacije, predstavitve in npramples
Različne vrste RF aplikacij, demonstracije in nprampdatoteke so na voljo v paketu STM32CubeWL3. Navedeni so v spodnjih dveh razdelkih.

Sub-GHz examples in demonstracije
Ti bivšiampprikazujejo glavne značilnosti radijskih periferij MRSUBG in LPAWUR. Ti bivšiampdatoteke so na voljo pod:

  • Projekti\NUCLEO-WL33CC\Examples\MRSUBG
  • Projekti\NUCLEO-WL33CC\Examples\LPAWUR
  • Projekti\NUCLEO-WL33CC\Demonstracije\MRSUBG
  • Projekti\NUCLEO-WL33CC\Demonstracije\LPAWUR

Vsak bivšiampDatoteka ali predstavitev je na splošno sestavljena iz dveh programov, imenovanih Tx in Rx, ki delujeta kot oddajnik oziroma sprejemnik:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: implementacija fizičnega sloja, ki ga definira standard 802.15.4. Prikazuje, kako konfigurirati radio za oddajanje ali sprejemanje paketov 802.15.4.
    • MRSUBG_BasicGeneric: Izmenjava osnovnih paketov STM32WL3x MR_SUBG.
    • MRSUBG_Chat: preprosta aplikacija, ki pokaže, kako uporabljati Tx in Rx na isti napravi.
    • MRSUBG_DatabufferHandler: Exampdatoteka, ki prikazuje, kako zamenjati podatkovni medpomnilnik 0 in 1.
    • MRSUBG_Sequencer AutoAck: An exampdatoteko, ki samodejno oddaja in sprejema potrditve paketov (ACK).
    • MRSUBG_WMBusSTD: Izmenjava sporočil WM-Bus.
    • WakeupRadio: bivšiample za preizkus radijske periferije LPAWUR.
  • Demonstracije/MRSUBG
    • MRSUBG_RTC_Button_TX: Ta nprampLe prikazuje, kako nastaviti SoC v način globoke zaustavitve in konfigurirati MRSUBG, da prebudi SoC s pritiskom na PB2 za pošiljanje okvira ali po izteku časovnika RTC.
    • MRSUBG_Sequencer_Sniff: Ta example prikazuje, kako nastaviti sekvencer MRSUBG za delovanje v načinu vohanja. Ta bivšiample prikazuje sprejemno stran in zahteva drugo napravo kot oddajnik.
    • MRSUBG_Timer: Aplikacija načrtuje več primerkov časovnika MRSUBG (s samodejnim ponovnim nalaganjem) z različnimi časovnimi intervali.
    • MRSUBG_WakeupRadio_Tx: Ta example pojasnjuje, kako nastaviti SoC v način globoke zaustavitve in konfigurirati MRSUBG, da prebudi SoC s pritiskom na PB2 za pošiljanje okvira. Ta bivšiample prikazuje stran oddajnika in zahteva drugo napravo kot sprejemnik LPAWUR. Sprejemnik nprampDatoteka se nahaja v mapi NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
  • Demonstracije/LPAWUR
    • LPAWUR_WakeupRadio_Rx: Ta example pojasnjuje, kako nastaviti SoC v način globoke zaustavitve in konfigurirati LPAWUR, da prebudi SoC, ko okvir prispe in je pravilno sprejet. Ta bivšiample prikazuje sprejemno stran in zahteva drugo napravo kot oddajnik. Oddajnik exampDatoteka se nahaja v mapi NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.

Aplikacija Sigfox™
Te aplikacije prikazujejo, kako implementirati scenarij Sigfox™ in uporabiti razpoložljive API-je Sigfox™. Na voljo so v projektni poti Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: Ta aplikacija prikazuje, kako uporabiti vmesnik ukazne vrstice (CLI) za pošiljanje ukazov, ki uporabljajo protokol Sigfox™ za pošiljanje sporočil in izvajanje predcertifikacijskih testov.
  • Sigfox_PushButton: Ta aplikacija omogoča oceno radijskih zmogljivosti naprave STM32WL33xx Sigfox™. S pritiskom na PB1 se odda testni okvir Sigfox™.

pogosta vprašanja

  1. Kdaj naj namesto gonilnikov LL uporabim HAL?
    Gonilniki HAL ponujajo visokonivojske in funkcionalno usmerjene API-je z visoko stopnjo prenosljivosti. Kompleksnost izdelka ali periferne opreme je skrita za končne uporabnike.
    Gonilniki LL ponujajo nizkoplastne API-je na ravni registra z boljšo optimizacijo, vendar manj prenosljivi. Zahtevajo poglobljeno poznavanje specifikacij izdelka ali IP.
  2. Ali je mogoče gonilnike HAL in LL uporabljati skupaj? Če da, kakšne so omejitve?
    Možna je uporaba gonilnikov HAL in LL. Uporabite HAL za fazo inicializacije perifernih naprav in nato upravljajte V/I operacije z gonilniki LL.
    Glavna razlika med HAL in LL je, da gonilniki HAL zahtevajo ustvarjanje in uporabo ročajev za upravljanje operacij, medtem ko gonilniki LL delujejo neposredno na perifernih registrih. Mešanje HAL in LL je ponazorjeno v Examples_MIX npramples.
  3. Kako so omogočeni API-ji za inicializacijo LL?
    Definicija API-jev za inicializacijo LL in povezanih virov (strukture, literali in prototipi) je pogojena s stikalom prevajanja USE_FULL_LL_DRIVER.
    Če želite uporabljati API-je za inicializacijo LL, dodajte to stikalo v predprocesorju prevajalnika orodne verige.
  4. Ali obstaja kakšna predloga projekta za periferne naprave MRSUBG/LPAWUR examples?
    Če želite ustvariti nov MRSUBG ali LPAWUR exampprojekt, bodisi začnite z okvirnim projektom, ki je pod \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG ali \Projekti\NUCLEO-WL33CC\Examples\LPAWUR ali iz katerega koli razpoložljivega projekta v teh istih imenikih.
  5. Kako lahko STM32CubeMX ustvari kodo na podlagi vdelane programske opreme?
    STM32CubeMX ima vgrajeno znanje o mikrokontrolerjih STM32, vključno z njihovimi zunanjimi napravami in programsko opremo, kar mu omogoča, da uporabniku ponudi grafično predstavitev in ustvari *.h ali *.c filetemelji na konfiguraciji uporabnika.

Zgodovina revizij

Tabela 3. Zgodovina revizij dokumenta

Datum Revizija Spremembe
29-mar-2024 1 Začetna izdaja.
30. oktober 2024 2 Popolna integracija STM32CubeWL3 in STM32Cube. posodobljeno:

Odstranjeno:

  • PC orodja, vključno z Navigator, GUI STM32WL3, in GUI sekvencerja MR-SUBG
  • Kako lahko WiSE-Studio IOMapper ustvari kodo na podlagi vdelane programske opreme?
  • Ali Navigator omogoča dostop do virov programskega paketa?

Dokumenti / Viri

Programski paket ST STM32WL3x [pdfNavodila
Programski paket STM32WL3x, STM32WL3x, programski paket, paket

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *