STM32WL3x-loigo

STM32WL3x programinės įrangos paketas

STM32WL3x-Programinės įrangos paketas -PRODUKTAS

Specifikacijos

  • Produkto pavadinimas: STM32CubeWL3 programinės įrangos paketas
  • Suderinamumas: STM32WL3x mikrovaldikliai
  • Pagrindinės savybės:
    • Žemo sluoksnio (LL) ir aparatinės įrangos abstrakcijos sluoksnio (HAL) API
    • SigfoxTM, FatFS ir FreeRTOSTM branduolio tarpinės programinės įrangos komponentai
    • Programos ir demonstracijos

Produkto naudojimo instrukcijos

Darbo pradžia
Norėdami pradėti naudoti STM32CubeWL3 programinės įrangos paketą, atlikite šiuos veiksmus:

  1. Atsisiųskite programinės įrangos paketą iš oficialaus websvetainę.
  2. Įdiekite reikiamą kūrimo aplinką (pvz., STM32CubeIDE, EWARM, MDK-ARM).
  3. Kreipkitės į buvamples ir taikomąsias programas.

STM32CubeWL3 architektūra baigtaview
STM32CubeWL3 programinės įrangos paketas sukurtas pagal tris pagrindinius lygius

  • 0 lygis: Aparatūros abstrakcijos sluoksnis (HAL) ir BSP tvarkyklės.
  • 1 lygis: Programos, bibliotekos ir protokolais pagrįsti komponentai.

Dažnai užduodami klausimai (DUK)

K: Kokios yra pagrindinės STM32CubeWL3 programinės įrangos paketo funkcijos?
A: Pagrindinės funkcijos apima žemo sluoksnio ir HAL API, tarpinės programinės įrangos komponentus, pvz., SigfoxTM, FatFS, FreeRTOSTM branduolį, programas ir demonstracijas.

Įvadas

STM32Cube yra originali STMicroelectronics iniciatyva, skirta žymiai pagerinti dizainerių produktyvumą sumažinant kūrimo pastangas, laiką ir išlaidas. STM32Cube apima visą STM32 portfelį.

STM32Cube apima:

  • Patogių programinės įrangos kūrimo įrankių rinkinys, apimantis projekto kūrimą nuo sumanymo iki realizavimo, įskaitant:
    • STM32CubeMX – grafinės programinės įrangos konfigūravimo įrankis, leidžiantis automatiškai generuoti C inicijavimo kodą naudojant grafinius vedlius
    • STM32CubeIDE – „viskas viename“ kūrimo įrankis su periferine konfigūracija, kodo generavimu, kodo kompiliavimo ir derinimo funkcijomis
    • STM32CubeCLT – „viskas viename“ komandinės eilutės kūrimo įrankių rinkinys su kodo kompiliavimo, plokštės programavimo ir derinimo funkcijomis
    • STM32CubeProgrammer (STM32CubeProg), programavimo įrankis, galimas grafinėmis ir komandinės eilutės versijomis
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), galingi stebėjimo įrankiai, skirti tiksliai suderinti STM32 programų veikimą ir veikimą realiuoju laiku
  • STM32Cube MCU ir MPU paketai, išsamios įterptosios programinės įrangos platformos, būdingos kiekvienai mikrovaldiklio ir mikroprocesorių serijai (pvz., STM32CubeWL3 STM32WL3x produktų linijai), kurios apima:
    • STM32Cube aparatūros abstrakcijos sluoksnis (HAL), užtikrinantis maksimalų perkeliamumą visame STM32 portfelyje
    • STM32Cube žemo sluoksnio API, užtikrinančios geriausią našumą ir pėdsakus, naudojant aukštą vartotojo valdymo] aparatinę įrangą
    • Nuoseklus tarpinės programinės įrangos komponentų rinkinys, pvz., FreeRTOS™ branduolys, FatFS ir Sigfox™
    • Visos įterptosios programinės įrangos paslaugos su visais periferinių ir taikomųjų įrenginių rinkiniais, pvzamples
  • STM32Cube išplėtimo paketai, kuriuose yra įterptųjų programinės įrangos komponentų, kurie papildo STM32Cube MCU ir MPU paketų funkcijas:
    • Tarpinės programinės įrangos plėtiniai ir taikomieji sluoksniai
    • Examples veikia kai kuriose konkrečiose STMicroelectronics kūrimo plokštėse

Šiame vartotojo vadove aprašoma, kaip pradėti naudoti STM32CubeWL3 MCU paketą.
2 skyriuje aprašomos pagrindinės STM32CubeWL3 ypatybės, o 3 skyriuje pateikiama daugiauview jos architektūra ir MCU paketo struktūra.

Bendra informacija

STM32CubeWL3 paleidžia subGHz demonstracines programas, įskaitant Sigfox™ dvejetainius failus, STM32WL3x produktų linijos mikrovaldikliuose, pagrįstuose Arm® Cortex®-M0+ procesoriumi.
STM32WL3x mikrovaldikliuose įdiegtas naujausias STMicroelectronics sub-GHz suderinamas RF radijo periferinis įrenginys, optimizuotas itin mažam energijos suvartojimui ir puikiam radijo našumui, kad baterijos tarnavimo laikas būtų neprilygstamas.
Pastaba: Arm yra registruotasis Arm Limited (arba jos dukterinių įmonių) prekės ženklas JAV ir (arba) kitur.

STM32CubeWL3 pagrindinės savybės

  • STM32CubeWL3 MCU paketas veikia STM32 32 bitų mikrovaldikliuose, pagrįstuose Arm® Cortex®-M0+ procesoriumi. Į vieną paketą surenkami visi bendrieji įterptosios programinės įrangos komponentai, reikalingi STM32WL3x produktų linijos mikrovaldiklių programai sukurti.
  • Į paketą įeina žemo sluoksnio (LL) ir aparatinės įrangos abstrakcijos sluoksnio (HAL) API, apimančios mikrovaldiklio aparatinę įrangą, kartu su dideliu ex.amples veikia STMicroelectronics plokštėse. Vartotojo patogumui HAL ir LL API yra prieinamos atvirojo kodo BSD licencijoje. Jame taip pat yra Sigfox™, FatFS ir FreeRTOS™ branduolio tarpinės programinės įrangos komponentai.
  • STM32CubeWL3 MCU pakete taip pat yra keletas programų ir demonstracijų, įgyvendinančių visus tarpinės programinės įrangos komponentus.
  • STM32CubeWL3 MCU paketo komponentų išdėstymas parodytas 1 paveiksle.

1 pav. STM32CubeWL3 MCU paketo komponentai 

STM32WL3x-Programinės įrangos paketas (2)

STM32CubeWL3 architektūra baigtaview

STM32CubeWL3 MCU paketo sprendimas yra sukurtas pagal tris nepriklausomus lygius, kurie lengvai sąveikauja, kaip aprašyta 2 paveiksle. STM32WL3x-Programinės įrangos paketas (3)0 lygis
Šis lygis yra padalintas į tris posluoksnius:

  • Lentos palaikymo paketas (BSP).
  • Aparatinės įrangos abstrakcijos sluoksnis (HAL):
    • HAL periferinės tvarkyklės
    • Žemo sluoksnio vairuotojai
  • Pagrindinis periferinis naudojimas, pvzamples.

Lentos palaikymo paketas (BSP)
Šis sluoksnis siūlo API rinkinį, susijusį su aparatinės įrangos plokščių aparatūros komponentais (pvz., šviesos diodais, mygtukais ir COM tvarkyklėmis). Jį sudaro dvi dalys:

  • Komponentas:
    Tai tvarkyklė, susijusi su išoriniu plokštės įrenginiu, o ne su STM32. Komponento tvarkyklė teikia specifines API išoriniams BSP tvarkyklės komponentams ir gali būti nešiojama bet kurioje kitoje plokštėje.
  • BSP vairuotojas:

Tai leidžia susieti komponentų tvarkykles su konkrečia plokšte ir pateikia patogių API rinkinį. API pavadinimo taisyklė yra BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP yra pagrįsta moduline architektūra, leidžiančia lengvai perkelti bet kokią aparatinę įrangą, tiesiog įgyvendinant žemo lygio procedūras.

Aparatinės įrangos abstrakcijos sluoksnis (HAL) ir žemas sluoksnis (LL)
STM32CubeWL3 HAL ir LL papildo vienas kitą ir atitinka įvairius taikymo reikalavimus:

  • HAL tvarkyklės siūlo aukšto lygio funkcijas orientuotas labai nešiojamas API. Jie paslepia MCU ir periferinį sudėtingumą galutiniam vartotojui.
    HAL tvarkyklės teikia bendrąsias kelių egzempliorių ypatybes orientuotas API, kurios supaprastina vartotojo taikomųjų programų įgyvendinimą suteikdamos paruoštus naudoti procesus. Pavyzdžiui,ample, komunikacijos periferiniams įrenginiams (I2C, UART ir kitiems), teikia API, leidžiančias inicijuoti ir konfigūruoti periferinę įrangą, valdyti duomenų perdavimą, pagrįstą apklausos, pertraukimo ar DMA procesu, ir tvarkyti ryšio klaidas, kurios gali kilti ryšio metu. HAL tvarkyklės API yra suskirstytos į dvi kategorijas:
  1. Bendrosios API, kurios teikia bendras ir bendrąsias funkcijas visiems STM32 serijos mikrovaldikliams.
  2. Išplėtimo API, kurios teikia specifines ir pritaikytas funkcijas konkrečiai šeimai arba konkrečiam dalies numeriui.
  • Žemo sluoksnio API teikia žemo lygio API registro lygiu su geresne optimizacija, bet mažesniu perkeliamumu. Jie reikalauja gilių žinių apie MCU ir periferines specifikacijas.
    LL tvarkyklės sukurtos taip, kad pasiūlytų greitą ir lengvą, į ekspertus orientuotą sluoksnį, kuris yra arčiau aparatinės įrangos nei HAL. Priešingai nei HAL, LL API nėra teikiamos išoriniams įrenginiams, kuriuose optimizuota prieiga nėra pagrindinė funkcija, arba tiems, kuriems reikalinga sudėtinga programinės įrangos konfigūracija arba sudėtingas viršutinio lygio dėklas.

LL tvarkyklės turi:

  • Funkcijų rinkinys, skirtas pagrindinėms periferinėms funkcijoms inicijuoti pagal duomenų struktūrose nurodytus parametrus.
  • Funkcijų rinkinys, skirtas užpildyti inicijavimo duomenų struktūras iš naujo nustatytomis reikšmėmis, atitinkančiomis kiekvieną lauką.
  • Periferinio įrenginio inicijavimo panaikinimo funkcija (atkurtos numatytosios periferinių įrenginių registrų reikšmės).
  • Įterptinių funkcijų rinkinys, skirtas tiesioginei ir atominei prieigai prie registrų.
  • Visiška nepriklausomybė nuo HAL ir galimybė naudoti autonominiu režimu (be HAL tvarkyklių).
  • Visa palaikomų periferinių funkcijų aprėptis.

Pagrindinis periferinis naudojimas, pvzamples
Šis sluoksnis apima buvamples pastatyti per STM32 periferinius įrenginius, naudojant tik HAL ir BSP išteklius.
Demonstracija buvamples taip pat galima rodyti sudėtingesnius pvzampscenarijus su konkrečiais periferiniais įrenginiais, tokiais kaip MRSUBG ir LPAWUR.

1 lygis
Šis lygis yra padalintas į du posluoksnius:

  • Tarpinės programinės įrangos komponentai
  • Exampmažiau pagrįsta tarpinės programinės įrangos komponentais

Tarpinės programinės įrangos komponentai
Tarpinė programinė įranga yra bibliotekų rinkinys, apimantis FreeRTOS™ branduolį, FatFS ir Sigfox™ protokolų biblioteką. Horizontali sąveika tarp šio sluoksnio komponentų atliekama iškviečiant siūlomas API.
Vertikali sąveika su žemo sluoksnio tvarkyklėmis atliekama naudojant specifinius atgalinius skambučius ir statines makrokomandas, įdiegtas bibliotekos sistemos skambučių sąsajoje.
Pagrindinės kiekvieno tarpinės programinės įrangos komponento savybės yra šios:

  • FreeRTOS™ branduolys: įgyvendina realaus laiko operacinę sistemą (RTOS), skirtą įterptoms sistemoms.
  • Sigfox™: įdiegia Sigfox™ protokolų biblioteką, suderinamą su Sigfox™ protokolų tinklu, ir apima RF bandymo protokolų biblioteką, skirtą išbandyti RF Sigfox™ įrankius.
  • FatFS: įgyvendina bendrąjį FAT file sistemos modulis.

Exampmažiau pagrįsta tarpinės programinės įrangos komponentais
Kiekvienas tarpinės programinės įrangos komponentas yra su vienu ar daugiau examples, dar vadinama programomis, parodant, kaip ja naudotis. Integracija pvzampTaip pat pateikiami keli tarpinės programinės įrangos komponentai.

STM32CubeWL3 programinės įrangos paketas baigėsiview

Palaikomi STM32WL3x įrenginiai ir aparatinė įranga
STM32Cube siūlo labai nešiojamą aparatinės įrangos abstrakcijos sluoksnį (HAL), sukurtą pagal bendrą architektūrą. Tai leidžia sukurti sluoksnių principą, pvz., naudojant tarpinės programinės įrangos sluoksnį jų funkcijoms įgyvendinti, giliai nežinant, koks MCU naudojamas. Tai pagerina bibliotekos kodo pakartotinį naudojimą ir užtikrina lengvą perkėlimą į kitus įrenginius.

  • Be to, dėl savo daugiasluoksnės architektūros STM32CubeWL3 siūlo visišką visos STM32WL3x produktų linijos palaikymą.
  • Vartotojas turi apibrėžti tik tinkamą makrokomandą stm32wl3x.h.

1 lentelėje parodyta makrokomanda, kurią reikia apibrėžti atsižvelgiant į naudojamą STM32WL3x produktų linijos įrenginį. Ši makrokomanda taip pat turi būti apibrėžta kompiliatoriaus pirminiame procese.
1 lentelė. STM32WL3x produktų linijos makrokomandos

Makrokomandas apibrėžtas stm32wl3x.h STM32WL3x produktų linijos įrenginiai
stm32wl33 STM32WL33xx mikrovaldikliai

STM32CubeWL3 yra gausus examples ir programas visais lygiais, todėl lengva suprasti ir naudoti bet kokias HAL tvarkykles ar tarpinės programinės įrangos komponentus. Šie buvęamples veikia 2 lentelėje nurodytose STMicroelectronics plokštėse.

lenta STM32WL3x plokštės palaikomi įrenginiai
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

STM32CubeWL3 MCU paketas gali veikti su bet kokia suderinama aparatūra. Vartotojai tiesiog atnaujina BSP tvarkykles, kad prijungtų pateiktą examples savo lentose, jei jos turi tas pačias techninės įrangos funkcijas (pvz., šviesos diodus ar mygtukus).

Baigtas programinės įrangos paketasview
STM32CubeWL3 MCU paketo sprendimas pateikiamas viename užtrauktuku, kurio struktūra parodyta 3 paveiksle.
3 pav. STM32CubeWL3 programinės įrangos paketo struktūra

STM32WL3x-Programinės įrangos paketas (4)

Atsargiai:

Naudotojas negali keisti komponentų files. Vartotojas gali redaguoti tik \Projects šaltinius.
Kiekvienai lentai rinkinys examples yra su iš anksto sukonfigūruotais projektais EWARM, MDK-ARM ir STM32CubeIDE įrankių grandinėms.
4 paveiksle parodyta NUCLEO-WL33CCx plokščių projekto struktūra. STM32WL3x-Programinės įrangos paketas (5)

Buvęsamples klasifikuojami atsižvelgiant į STM32CubeWL3 lygį, kuriam jie taikomi. Jie pavadinti taip:

  • 0 lygis, pvzamples vadinami Examples, pvzamples_LL ir Pvzamples_MIX. Jie naudoja atitinkamai HAL tvarkykles, LL tvarkykles ir HAL bei LL tvarkyklių derinį be jokio tarpinės programinės įrangos komponento. Demonstracija buvamples taip pat yra.
  • 1 lygis, pvzamples vadinamos programomis. Jie pateikia tipinius kiekvieno tarpinės programinės įrangos komponento naudojimo atvejus.

Bet kokią programinės įrangos programą tam tikrai plokštei galima greitai sukurti naudojant šablonų projektus, esančius kataloguose Templ ates ir Templates_LL.

Examples, pvzamples_LL ir Pvzamples_MIX turi tą pačią struktūrą:

  • \Inc aplankas, kuriame yra visa antraštė files.
  • \Src aplankas, kuriame yra šaltinio kodas.
  • \EWARM, \MDK-ARM ir \STM32CubeIDE aplankai, kuriuose yra iš anksto sukonfigūruotas kiekvienos įrankių grandinės projektas.
  • readme.md ir readme.html, aprašantys buvampelgseną ir reikalingą aplinką, kad jis veiktų.

Darbo su STM32CubeWL3 pradžia

Vykdo pirmąjį buvusįjįample
Šiame skyriuje paaiškinama, kaip paprasta paleisti pirmąjį buvample per STM32CubeWL3. Jame kaip iliustracija naudojama paprasto LED perjungiklio, veikiančio NUCLEO-WL33CC1 plokštėje, generavimas:

  1. Atsisiųskite STM32CubeWL3 MCU paketą.
  2. Išpakuokite jį arba paleiskite diegimo programą, jei yra, į pasirinktą katalogą.
  3. Nepakeiskite paketo struktūros, parodytos 3 pav. STM32CubeWL3 programinės įrangos paketo struktūra. Atminkite, kad taip pat rekomenduojama kopijuoti paketą į vietą, esančią netoli šakninio tomo (tai reiškia C:\ST arba G:\Tests), nes kai kurie IDE susiduria su problemomis, kai kelias yra per ilgas.

Kaip valdyti HAL example
Prieš įkeldamas ir paleisdamas buvample, primygtinai rekomenduojama perskaityti buvample readme file bet kokiai konkrečiai konfigūracijai.

  1. Eikite į \Projects\NUCLEO-WL33CC\Examples.
  2. Atidarykite aplankus \GPIO, tada \GPIO_EXTI.
  3. Atidarykite projektą naudodami pageidaujamą įrankių grandinę. Greita pabaigaview apie tai, kaip atidaryti, sukurti ir valdyti buvusį asmenįample su palaikomomis įrankių grandinėmis pateikta žemiau.
  4. Viską atstatyti files ir įkelkite vaizdą į tikslinę atmintį.
  5. Paleiskite buvusįjįample. Norėdami gauti daugiau informacijos, žr. example readme file.

Norėdami atidaryti, sukurti ir paleisti buvampsu kiekviena palaikoma įrankių grandine, atlikite toliau nurodytus veiksmus.

  • EWARM:
  1. Pagal Examples aplanką, atidarykite \EWARM poaplankį.
  2. Paleiskite Project.eww darbo sritį (darbo srities pavadinimas gali pasikeisti nuo vieno pvzample kitam).
  3. Viską atstatyti files: [Projektas]> [Atkurti viską].
  4. Įkelkite projekto vaizdą: [Project]> [Debug].
  5. Paleiskite programą: [Debug]> [Go (F5)].
  • MDK-ARM:
  1. Pagal Examples aplanką, atidarykite \MDK-ARM poaplankį.
  2. Atidarykite Project.uvproj darbo sritį (darbo srities pavadinimas gali pasikeisti nuo vieno pvzample kitam).
  3. Viską atstatyti files: [Projektas]> [Atkurti visą taikinį files].
  4. Įkelkite projekto vaizdą: [Debug]> [Start/Stop Debug Session].
  5. Paleiskite programą: [Debug]> [Run (F5)].
  • STM32CubeIDE:
  1. Atidarykite STM32CubeIDE įrankių grandinę.
  2. Spustelėkite [File]>[Perjungti darbo sritį]>[Kita] ir naršykite STM32CubeIDE darbo srities katalogą.
  3. Spustelėkite [File]> [Importuoti], pasirinkite [Bendra]> [Esami projektai darbo srityje], tada spustelėkite [Kitas].
  4. Eikite į STM32CubeIDE darbo srities katalogą ir pasirinkite projektą.
  5. Atkurti visą projektą files: „Project Explorer“ lange pasirinkite projektą, tada spustelėkite
    meniu [Projektas]> [Sukurti projektą].
  6.  Paleiskite programą: [Vykdyti]> [Debug (F11)].

Pasirinktinės programos kūrimas

STM32CubeMX naudojimas programai kurti arba atnaujinti
STM32Cube MCU pakete beveik visi projektai, pvzamples generuojami naudojant STM32CubeMX įrankį, kad būtų galima inicijuoti sistemą, išorinius įrenginius ir tarpinę programinę įrangą.

Tiesioginis esamo projekto naudojimas, pvzampSTM32CubeMX įrankiui reikalinga STM32CubeMX 6.12.0 arba naujesnė versija:

  • Įdiegę STM32CubeMX atidarykite ir, jei reikia, atnaujinkite siūlomą projektą.
    Paprasčiausias būdas atidaryti esamą projektą yra dukart spustelėti *.ioc file kad STM32CubeMX automatiškai atidarytų projektą ir jo šaltinį files. STM32CubeMX generuoja tokių projektų inicijavimo šaltinio kodą.
  • Pagrindinis programos šaltinio kodas yra komentaruose „VARTOTOJO KODO PRADŽIA“ ir „VARTOTOJO KODO PABAIGA“. Jei periferinės įrangos pasirinkimas ir nustatymai yra modifikuoti, STM32CubeMX atnaujina kodo inicijavimo dalį, išsaugodama pagrindinės programos šaltinio kodą.

Norėdami sukurti pasirinktinį projektą su STM32CubeMX, atlikite žingsnis po žingsnio procesą:

  1. Sukonfigūruokite visą reikiamą įterptąją programinę įrangą naudodami pinout-conflict solver, laikrodžio medžio nustatymo pagalbinę priemonę, energijos suvartojimo skaičiuotuvą ir MCU periferinę konfigūraciją atliekančią priemonę (pvz., GPIO arba USART).
  2. Sugeneruokite inicijavimo C kodą pagal pasirinktą konfigūraciją. Šis kodas yra paruoštas naudoti keliose kūrimo aplinkose. Vartotojo kodas saugomas kitos kartos kodo metu.
    Norėdami gauti daugiau informacijos apie STM32CubeMX, žr. vartotojo vadovą STM32CubeMX, skirtą STM32 konfigūracijai ir inicijavimo C kodo generavimui (UM1718).

Tvarkyklės programos

HAL taikymas
Šiame skyriuje aprašomi veiksmai, kurių reikia norint sukurti pasirinktinę HAL programą naudojant STM32CubeWL3:

  1. Sukurti projektą
    Norėdami sukurti naują projektą, pradėkite nuo šablono projekto, pateikto kiekvienai plokštei \Projects\< STM32xxx_yyy>\Templates, arba nuo bet kurio galimo projekto, esančio \Projects\ \Pvzampl es arba \Projects\ \Programos (kur nurodo lentos pavadinimą). Šablono projektas suteikia tuščios pagrindinės kilpos funkciją. Tačiau tai yra geras atspirties taškas norint suprasti STM32CubeWL32 projekto nustatymus. Šablonas turi šias charakteristikas:
    • Jame yra HAL šaltinio kodas, CMSIS ir BSP tvarkyklės, kurios yra minimalus komponentų rinkinys, reikalingas tam tikroje plokštėje sukurti kodą.
    • Jame yra įtraukti visų programinės įrangos komponentų keliai.
    • Jis apibrėžia palaikomus STM32WL3x produktų linijos įrenginius, leidžiančius tinkamai sukonfigūruoti CMSIS ir HAL tvarkykles.
    • Tai paruoštas naudoti vartotojas fileyra iš anksto sukonfigūruotas, kaip parodyta žemiau:
    • HAL inicijuotas pagal numatytąją laiko bazę su Arm® branduoliu SysTick.
    • SysTick ISR įdiegtas HAL_Delay() tikslu.
      Pastaba: Kopijuodami esamą projektą į kitą vietą įsitikinkite, kad visi įtraukti keliai yra atnaujinti.
  2. Konfigūruokite programinės įrangos komponentus
    HAL ir tarpinės programinės įrangos komponentai siūlo kūrimo laiko konfigūravimo parinkčių rinkinį, naudojant makrokomandas #define, nurodytas antraštėje file. Šablono konfigūracija file yra kiekviename komponente, kurį reikia nukopijuoti į projekto aplanką (paprastai konfigūraciją file pavadintas xxx_conf_template.h, kopijuojant jį į projekto aplanką reikia pašalinti fragmentą _template). Konfigūracija file suteikia pakankamai informacijos, kad suprastumėte kiekvienos konfigūracijos parinkties poveikį. Išsamesnė informacija pateikiama kiekvieno komponento dokumentacijoje.
  3. Paleiskite HAL biblioteką
    Peršokus į pagrindinę programą, programos kodas turi iškviesti HAL_Init() API, kad inicijuotų HAL biblioteką, kuri atlieka šias užduotis:
    • „Flash“ atminties išankstinio gavimo ir SysTick pertraukimo prioriteto konfigūracija (naudojant makrokomandas, apibrėžtas stm3 2wl3x_hal_conf.h).
    •  SysTick konfigūracija generuoti pertraukimą kas milisekundę esant SysTick pertraukimo prioritetui TICK_INT_PRIO, apibrėžtam stm32wl3x_hal_conf.h.
    • NVIC grupės prioriteto nustatymas į 0.
    • HAL_MspInit() atgalinio skambinimo funkcijos iškvietimas, apibrėžtas stm32wl3x_hal_msp.c naudotoje file pasauliniam žemo lygio aparatūros inicijavimui atlikti.
  4. Konfigūruokite sistemos laikrodį
    Sistemos laikrodžio konfigūracija atliekama iškviečiant dvi toliau aprašytas API:
    • HAL_RCC_OscConfig(): ši API konfigūruoja vidinius ir išorinius generatorius. Vartotojas pasirenka konfigūruoti vieną arba visus generatorius.
    • HAL_RCC_ClockConfig(): ši API konfigūruoja sistemos laikrodžio šaltinį, „flash“ atminties delsą ir AHB bei APB išankstinius skirstytuvus.
  5. Inicijuokite periferinį įrenginį
    •  Pirmiausia parašykite periferinės inicializacijos funkciją. Tęskite taip:
    • Įjunkite periferinį laikrodį.
    • Konfigūruokite periferinius GPIO.
    • Konfigūruokite DMA kanalą ir įjunkite DMA pertraukimą (jei reikia).
    • Įjunkite periferinį pertraukimą (jei reikia).
    • Redaguokite stm32xxx_it.c, kad iškviestumėte reikiamus pertraukimų tvarkykles (periferinius įrenginius ir DMA), jei reikia.
    •  Parašykite proceso užbaigtas atgalinio ryšio funkcijas, jei ketinama naudoti periferinį pertraukimą arba DMA.
    •  Vartotojo pagrindiniame.c file, inicijuokite periferinės rankenos struktūrą, tada iškvieskite periferinio įrenginio inicijavimo funkciją, kad inicijuotų periferinį įrenginį.
  6. Sukurkite programą
    Šiuo stage, sistema paruošta ir galima pradėti kurti vartotojo programos kodą.
    HAL pateikia intuityvius ir paruoštus naudoti API periferiniam įrenginiui konfigūruoti. Jis palaiko apklausą, pertraukimus ir DMA programavimo modelį, kad atitiktų visus programos reikalavimus. Norėdami gauti daugiau informacijos apie tai, kaip naudoti kiekvieną išorinį įrenginį, žr. turtingą examprinkinys pateiktas STM32CubeWL3 MCU pakete.

Atsargiai:
Numatytajame HAL diegime SysTick laikmatis naudojamas kaip laiko bazė: jis generuoja pertraukimus reguliariais laiko intervalais. Jei HAL_Delay() iškviečiamas iš periferinio ISR proceso, įsitikinkite, kad SysTick pertraukimas turi didesnį prioritetą (skaitmeniškai mažesnį) nei periferinis pertraukimas. Kitu atveju skambinančiojo ISR procesas yra
užblokuotas. Funkcijos, turinčios įtakos laiko bazės konfigūracijoms, deklaruojamos kaip __silpnos, kad būtų galima nepaisyti kitų naudotojo įdiegimų atveju file (naudojant bendrosios paskirties laikmatį, pvzample arba kitu laiko šaltiniu).
Norėdami gauti daugiau informacijos, žr. HAL_TimeBase example.

LL paraiška
Šiame skyriuje aprašomi veiksmai, kurių reikia norint sukurti pasirinktinę LL programą naudojant STM32CubeWL3.

  1. Sukurti projektą
    Norėdami sukurti naują projektą, pradėkite nuo Templates_LL projekto, pateikto kiekvienai lentai \Projects\ \Templates_LL arba iš bet kurio pasiekiamo projekto, esančio \Projects\ \E xamples_LL ( nurodo plokštės pavadinimą, pvz., NUCLEO-WL32CC33).
    Šablono projekte yra tuščios pagrindinės kilpos funkcija, kuri yra geras atspirties taškas norint suprasti STM32CubeWL3 projekto nustatymus. Pagrindinės šablono savybės yra šios:
    • Jame yra LL ir CMSIS tvarkyklių šaltinio kodai, kurie yra mažiausias komponentų rinkinys, reikalingas kodui sukurti tam tikroje plokštėje.
    • Jame yra įtraukti visų reikalingų programinės įrangos komponentų keliai.
    • Jis pasirenka palaikomą STM32WL3x produktų linijos įrenginį ir leidžia teisingai konfigūruoti CMSIS ir LL tvarkykles.
    • Jis suteikia paruoštą naudoti vartotoją files, kurios iš anksto sukonfigūruotos taip:
    • main.h: LED ir USER_BUTTON apibrėžimo abstrakcijos sluoksnis.
    • main.c: sistemos laikrodžio konfigūracija maksimaliam dažniui.
  2. Prijunkite LL exampLe:
    • Nukopijuokite / įklijuokite aplanką Templates_LL – norėdami išlaikyti pradinį šaltinį – arba tiesiogiai atnaujinkite esamą Templa tes_LL projektą.
    • Tada perkėlimą iš esmės sudaro Templates_LL pakeitimas files pagal Examples_LL tikslinis projektas.
    • Išsaugokite visas specialias plokštės dalis. Aiškumo sumetimais konkrečios plokštės dalys yra pažymėtos specifinėmis tags:
      STM32WL3x-Programinės įrangos paketas (1)

Taigi pagrindiniai perkėlimo žingsniai yra šie:

  • Pakeiskite stm32wl3x_it.h file.
  • Pakeiskite stm32wl3x_it.c file.
  • Pakeiskite pagrindinį.h file ir atnaujinkite jį: išsaugokite LL šablono šviesos diodo ir vartotojo mygtuko apibrėžimą skiltyje KONKRETINĖ LENTO KONFIGŪRAVIJA tags.
  • Pakeiskite pagrindinį.c file ir atnaujinkite:
  • Laikykite SystemClock_Config() LL šablono funkcijos laikrodžio konfigūraciją skiltyje BOARD SECIFIC CONFIGURATION tags.
  • Priklausomai nuo šviesos diodo apibrėžimo, kiekvieną LDx reiškinį pakeiskite kitu LDy, esančiu file pagrindinis.h.

Su šiais pakeitimais buvęsample veikia tikslinėje lentoje.

RF programos, demonstracijos ir pvzamples
Įvairių tipų RF programos, demonstracijos ir pvzamples yra STM32CubeWL3 pakete. Jie išvardyti dviejuose toliau pateiktuose skyriuose.

Sub-GHz pvzamples ir demonstracijas
Šie buvęamples demonstruoja pagrindines MRSUBG ir LPAWUR radijo periferinių įrenginių savybes. Šie buvęamples yra prieinami žemiau:

  • Projektai\NUCLEO-WL33CC\Examples\MRSUBG
  • Projektai\NUCLEO-WL33CC\Examples\LPAWUR
  • Projektai\NUCLEO-WL33CC\Demonstracijos\MRSUBG
  • Projektai\NUCLEO-WL33CC\Demonstracijos\LPAWUR

Kiekvienas buvęsample arba demonstraciją paprastai sudaro dvi programos, vadinamos Tx ir Rx, atitinkamai veikiančios kaip siųstuvas ir imtuvas:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: fizinio sluoksnio įgyvendinimas, apibrėžtas standartu 802.15.4. Jame parodyta, kaip sukonfigūruoti radiją, kad jis perduotų arba priimtų 802.15.4 paketus.
    • MRSUBG_BasicGeneric: STM32WL3x MR_SUBG pagrindinių paketų mainai.
    • MRSUBG_Chat: paprasta programa, rodanti, kaip naudoti Tx ir Rx tame pačiame įrenginyje.
    • MRSUBG_DatabufferHandler: pvzample, kuriame parodyta, kaip pakeisti duomenų buferį 0 ir 1.
    • MRSUBG_Sequencer AutoAck: pvzample, kuris automatiškai perduoda ir priima paketų patvirtinimus (ACK).
    • MRSUBG_WMBusSTD: keitimasis WM-Bus žinutėmis.
    • WakeupRadio: buvęsample išbandyti LPAWUR radijo periferinį įrenginį.
  • Demonstracijos/MRSUBG
    • MRSUBG_RTC_Button_TX: Šis pvzample parodo, kaip nustatyti SoC gilaus sustabdymo režimu ir sukonfigūruoti MRSUBG, kad pažadintų SoC paspaudus PB2, kad išsiųstumėte kadrą arba pasibaigus RTC laikmačio galiojimo laikui.
    • MRSUBG_Sequencer_Sniff: Šis pvzample parodo, kaip nustatyti MRSUBG sekvenatorių, kad jis veiktų uostymo režimu. Šis buvęsample demonstruoja imtuvo pusę ir reikalauja kito įrenginio kaip siųstuvo.
    • MRSUBG_Timer: programa suplanuoja kelis MRSUBG laikmačio egzempliorius (su automatiniu įkėlimu) skirtingais laiko intervalais.
    • MRSUBG_WakeupRadio_Tx: šis pvzample paaiškina, kaip nustatyti SoC gilaus sustabdymo režimu ir sukonfigūruoti MRSUBG, kad pažadintų SoC paspaudus PB2, kad išsiųstumėte kadrą. Šis buvęsample demonstruoja siųstuvo pusę ir reikalauja kito įrenginio kaip LPAWUR imtuvo. Imtuvas example yra aplanke NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
  • Demonstracijos/LPAWUR
    • LPAWUR_WakeupRadio_Rx: šis pvzample paaiškina, kaip nustatyti SoC gilaus sustabdymo režimu ir sukonfigūruoti LPAWUR, kad pažadintų SoC, kai gaunamas ir tinkamai gaunamas kadras. Šis buvęsample demonstruoja imtuvo pusę ir reikalauja kito įrenginio kaip siųstuvo. Siųstuvas example yra aplanke NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.

Sigfox™ programa
Šios programos parodo, kaip įdiegti Sigfox™ scenarijų ir naudoti galimas Sigfox™ API. Juos rasite projekto kelyje Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: Ši programa parodo, kaip naudoti komandų eilutės sąsają (CLI) siųsti komandas, kurios naudoja Sigfox™ protokolą pranešimams siųsti ir išankstinio sertifikavimo testams atlikti.
  • Sigfox_PushButton: ši programa leidžia įvertinti STM32WL33xx Sigfox™ įrenginio radijo galimybes. Paspaudus PB1 perduodamas bandomasis Sigfox™ kadras.

DUK

  1. Kada turėčiau naudoti HAL, o ne LL tvarkykles?
    HAL tvarkyklės siūlo aukšto lygio ir į funkcijas orientuotas API su dideliu perkeliamumo lygiu. Produkto ar išorinių įrenginių sudėtingumas yra paslėptas galutiniams vartotojams.
    LL tvarkyklės siūlo žemo sluoksnio registro lygio API su geresne optimizacija, bet mažiau nešiojamomis. Jiems reikia išsamių žinių apie produkto arba IP specifikacijas.
  2. Ar HAL ir LL tvarkykles galima naudoti kartu? Jei taip, kokie yra apribojimai?
    Galima naudoti ir HAL, ir LL tvarkykles. Naudokite HAL periferinės įrangos inicijavimo fazei ir valdykite įvesties / išvesties operacijas naudodami LL tvarkykles.
    Pagrindinis skirtumas tarp HAL ir LL yra tas, kad HAL tvarkyklės turi sukurti ir naudoti valdymo rankenėles, o LL tvarkyklės veikia tiesiogiai periferiniuose registruose. HAL ir LL maišymas parodytas Pvzamples_MIX pvzamples.
  3. Kaip įjungiamos LL inicijavimo API?
    LL inicijavimo API ir susijusių išteklių (struktūrų, literalų ir prototipų) apibrėžimą lemia USE_FULL_LL_DRIVER kompiliavimo jungiklis.
    Kad galėtumėte naudoti LL inicijavimo API, pridėkite šį jungiklį į įrankių grandinės kompiliatoriaus išankstinį procesorių.
  4. Ar yra koks nors MRSUBG / LPAWUR periferinės įrangos šablono projektas?ampmažiau?
    Norėdami sukurti naują MRSUBG arba LPAWUR exampprojektą, pradėkite nuo skeleto projekto, pateikto \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG arba \Projects\NUCLEO-WL33CC\Examples\LPAWUR arba iš bet kurio galimo projekto tuose pačiuose kataloguose.
  5. Kaip STM32CubeMX gali generuoti kodą pagal įterptąją programinę įrangą?
    STM32CubeMX turi integruotų žinių apie STM32 mikrovaldiklius, įskaitant jų periferinius įrenginius ir programinę įrangą, o tai leidžia vartotojui pateikti grafinį vaizdą ir generuoti *.h arba *.c files pagal vartotojo konfigūraciją.

Revizijų istorija

3 lentelė. Dokumento taisymo istorija

Data Peržiūra Pakeitimai
29 m. kovo 2024 d 1 Pradinis išleidimas.
30-spalio-2024 d 2 Pilna integracija STM32CubeWL3 in STM32 kubas. Atnaujinta:

Pašalinta:

  • PC įrankiai, įskaitant Navigatorius, STM32WL3 GUI, ir MR-SUBG sekos GUI
  • Kaip „WiSE-Studio IOMapper“ gali generuoti kodą pagal įterptąją programinę įrangą?
  • Ar „Navigator“ suteikia prieigą prie programinės įrangos paketo išteklių?

Dokumentai / Ištekliai

ST STM32WL3x programinės įrangos paketas [pdfInstrukcijos
STM32WL3x programinės įrangos paketas, STM32WL3x, programinės įrangos paketas, paketas

Nuorodos

Palikite komentarą

Jūsų el. pašto adresas nebus skelbiamas. Privalomi laukai pažymėti *