STM32WL3x-loigo

STM32WL3x programmatūras pakotne

STM32WL3x-Programmatūras pakotne-PRODCUCT

Specifikācijas

  • Produkta nosaukums: STM32CubeWL3 programmatūras pakotne
  • Saderība: STM32WL3x mikrokontrolleri
  • Galvenās funkcijas:
    • Zema slāņa (LL) un aparatūras abstrakcijas slāņa (HAL) API
    • SigfoxTM, FatFS un FreeRTOSTM kodola starpprogrammatūras komponenti
    • Lietojumprogrammas un demonstrācijas

Produkta lietošanas instrukcijas

Darba sākšana
Lai sāktu lietot programmatūras pakotni STM32CubeWL3, veiciet šīs darbības:

  1. Lejupielādējiet programmatūras pakotni no oficiālā webvietne.
  2. Instalējiet nepieciešamo izstrādes vidi (piemēram, STM32CubeIDE, EWARM, MDK-ARM).
  3. Skatiet bijušoamples un pieteikumi sniegti norādījumiem.

STM32CubeWL3 arhitektūra beigusiesview
STM32CubeWL3 programmatūras pakotne ir veidota trīs galvenajos līmeņos

  • 0. līmenis: Aparatūras abstrakcijas slānis (HAL) un BSP draiveri.
  • 1. līmenis: Lietojumprogrammas, bibliotēkas un uz protokoliem balstīti komponenti.

Bieži uzdotie jautājumi (FAQ)

J: Kādas ir programmatūras pakotnes STM32CubeWL3 galvenās funkcijas?
A: Galvenās funkcijas ietver zema slāņa un HAL API, starpprogrammatūras komponentus, piemēram, SigfoxTM, FatFS, FreeRTOSTM kodolu, lietojumprogrammas un demonstrācijas.

Ievads

STM32Cube ir oriģināla STMicroelectronics iniciatīva, lai ievērojami uzlabotu dizaineru produktivitāti, samazinot izstrādes piepūli, laiku un izmaksas. STM32Cube aptver visu STM32 portfeli.

STM32Cube ietver:

  • Lietotājam draudzīgu programmatūras izstrādes rīku komplekts, kas aptver projekta izstrādi no koncepcijas līdz realizācijai, tostarp:
    • STM32CubeMX, grafisks programmatūras konfigurācijas rīks, kas ļauj automātiski ģenerēt C inicializācijas kodu, izmantojot grafiskos vedņus
    • STM32CubeIDE, viss vienā izstrādes rīks ar perifērijas konfigurāciju, koda ģenerēšanu, koda kompilāciju un atkļūdošanas funkcijām
    • STM32CubeCLT — viss vienā komandrindas izstrādes rīku komplekts ar koda kompilācijas, plates programmēšanas un atkļūdošanas funkcijām
    • STM32CubeProgrammer (STM32CubeProg), programmēšanas rīks, kas pieejams grafiskajās un komandrindas versijās
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), jaudīgi uzraudzības rīki, lai precizētu STM32 lietojumprogrammu darbību un veiktspēju reāllaikā.
  • STM32Cube MCU un MPU pakotnes, visaptverošas iegultās programmatūras platformas, kas raksturīgas katrai mikrokontrolleru un mikroprocesoru sērijai (piemēram, STM32CubeWL3 STM32WL3x produktu līnijai), kas ietver:
    • STM32Cube aparatūras abstrakcijas slānis (HAL), nodrošinot maksimālu pārnesamību visā STM32 portfelī
    • STM32Cube zema slāņa API, kas nodrošina vislabāko veiktspēju un pēdas ar augstu lietotāja kontroles līmeni pār] aparatūru
    • Konsekvents starpprogrammatūras komponentu komplekts, piemēram, FreeRTOS™ kodols, FatFS un Sigfox™
    • Visas iegultās programmatūras utilītas ar pilniem perifērijas un lietojumprogrammatūru komplektiem, piemamples
  • STM32Cube paplašināšanas pakotnes, kas satur iegultos programmatūras komponentus, kas papildina STM32Cube MCU un MPU pakotņu funkcijas ar:
    • Starpprogrammatūras paplašinājumi un aplikācijas slāņi
    • Examples darbojas uz dažām īpašām STMicroelectronics izstrādes platēm

Šajā lietotāja rokasgrāmatā ir aprakstīts, kā sākt darbu ar STM32CubeWL3 MCU pakotni.
2. sadaļa apraksta galvenās STM32CubeWL3 funkcijas, un 3. sadaļa sniedz papilduview tās arhitektūru un MCU pakotnes struktūru.

Vispārīga informācija

STM32CubeWL3 izmanto subGHz demonstrācijas lietojumprogrammas, tostarp Sigfox™ bināros failus, STM32WL3x produktu līnijas mikrokontrolleros, kuru pamatā ir Arm® Cortex®-M0+ procesors.
STM32WL3x mikrokontrolleros ir iestrādāta STMicroelectronics jaunākā ar subGHz saderīga RF radio perifērija, kas optimizēta īpaši zemam enerģijas patēriņam un izcilai radio veiktspējai, lai nodrošinātu nepārspējamu akumulatora darbības laiku.
Piezīme: Arm ir reģistrēta uzņēmuma Arm Limited (vai tā meitasuzņēmumu) preču zīme ASV un/vai citur.

STM32CubeWL3 galvenās funkcijas

  • STM32CubeWL3 MCU pakotne darbojas ar STM32 32 bitu mikrokontrolleriem, kuru pamatā ir Arm® Cortex®-M0+ procesors. Tajā ir apkopoti visi vispārīgie iegultie programmatūras komponenti, kas nepieciešami, lai izstrādātu lietojumprogrammu STM32WL3x produktu līnijas mikrokontrolleriem.
  • Paketē ietilpst zema slāņa (LL) un aparatūras abstrakcijas slāņa (HAL) API, kas aptver mikrokontrollera aparatūru, kā arī plašs ex.amples darbojas uz STMicroelectronics plates. Lietotāju ērtībām HAL un LL API ir pieejamas atvērtā koda BSD licencē. Tas ietver arī Sigfox™, FatFS un FreeRTOS™ kodola starpprogrammatūras komponentus.
  • STM32CubeWL3 MCU pakotne nodrošina arī vairākas lietojumprogrammas un demonstrācijas, kas ievieš visus tās starpprogrammatūras komponentus.
  • STM32CubeWL3 MCU pakotnes komponentu izkārtojums ir parādīts 1. attēlā.

1. attēls. STM32CubeWL3 MCU pakotnes komponenti 

STM32WL3x-Software-Package (2)

STM32CubeWL3 arhitektūra beigusiesview

STM32CubeWL3 MCU pakotnes risinājums ir veidots trīs neatkarīgiem līmeņiem, kas viegli mijiedarbojas, kā aprakstīts 2. attēlā. STM32WL3x-Software-Package (3)0. līmenis
Šis līmenis ir sadalīts trīs apakšslāņos:

  • Valdes atbalsta pakete (BSP).
  • Aparatūras abstrakcijas slānis (HAL):
    • HAL perifērijas draiveri
    • Zema slāņa draiveri
  • Pamata perifērijas lietošana, piemamples.

Valdes atbalsta pakotne (BSP)
Šis slānis piedāvā API kopu saistībā ar aparatūras komponentiem aparatūras paneļos (piemēram, gaismas diodes, pogas un COM draiveri). Tas sastāv no divām daļām:

  • Komponents:
    Tas ir draiveris attiecībā pret ārējo ierīci uz paneļa, nevis pret STM32. Komponenta draiveris nodrošina īpašus API BSP draivera ārējiem komponentiem, un to var pārnēsāt uz jebkura cita plates.
  • BSP draiveris:

Tas ļauj saistīt komponentu draiverus ar noteiktu plati un nodrošina lietotājam draudzīgu API kopu. API nosaukšanas kārtula ir BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP pamatā ir modulāra arhitektūra, kas ļauj viegli pārnest jebkuru aparatūru, vienkārši ieviešot zema līmeņa rutīnas.

Aparatūras abstrakcijas slānis (HAL) un zemais slānis (LL)
STM32CubeWL3 HAL un LL papildina viens otru un aptver plašu lietojuma prasību klāstu:

  • HAL draiveri piedāvā augsta līmeņa funkcijas orientētas ļoti pārnēsājamas API. Tie gala lietotājam slēpj MCU un perifērijas sarežģītību.
    HAL draiveri nodrošina vispārīgas vairāku instanču funkcijām orientētas API, kas vienkāršo lietotāja lietojumprogrammu ieviešanu, nodrošinot lietošanai gatavus procesus. Piemēram,ample, sakaru perifērijas ierīcēm (I2C, UART un citām), tas nodrošina API, kas ļauj inicializēt un konfigurēt perifērijas ierīci, pārvaldīt datu pārsūtīšanu, pamatojoties uz aptauju, pārtraukšanu vai DMA procesu, un apstrādāt sakaru kļūdas, kas var rasties komunikācijas laikā. HAL draiveru API ir sadalītas divās kategorijās:
  1. Vispārējās API, kas nodrošina kopīgas un vispārīgas funkcijas visiem STM32 sērijas mikrokontrolleriem.
  2. Paplašinājuma API, kas nodrošina īpašas un pielāgotas funkcijas noteiktai saimei vai noteiktam daļas numuram.
  • Zema līmeņa API nodrošina zema līmeņa API reģistra līmenī ar labāku optimizāciju, bet mazāku pārnesamību. Viņiem ir nepieciešamas dziļas zināšanas par MCU un perifērijas specifikācijām.
    LL draiveri ir izstrādāti, lai piedāvātu ātru, vieglu, uz ekspertiem orientētu slāni, kas ir tuvāk aparatūrai nekā HAL. Pretēji HAL, LL API netiek nodrošinātas perifērijas ierīcēm, kurām optimizēta piekļuve nav galvenā funkcija, vai tām, kurām nepieciešama smaga programmatūras konfigurācija vai sarežģīta augstākā līmeņa steks.

LL draiveru funkcijas:

  • Funkciju kopums perifērijas galveno funkciju inicializācijai atbilstoši datu struktūrās norādītajiem parametriem.
  • Funkciju kopa, lai aizpildītu inicializācijas datu struktūras ar atiestatīšanas vērtībām, kas atbilst katram laukam.
  • Perifērijas deinicializācijas funkcija (perifērijas reģistri ir atjaunoti to noklusējuma vērtībās).
  • Iekļauto funkciju kopums tiešai un atomu reģistra piekļuvei.
  • Pilnīga neatkarība no HAL un iespēja izmantot savrupajā režīmā (bez HAL draiveriem).
  • Pilns atbalstīto perifērijas līdzekļu pārklājums.

Pamata perifērijas lietošana, piemamples
Šis slānis aptver exampbūvēti pa STM32 perifērijas ierīcēm, izmantojot tikai HAL un BSP resursus.
Demonstrācija examples ir pieejami arī, lai parādītu sarežģītākus exampscenāriji ar īpašām perifērijas ierīcēm, piemēram, MRSUBG un LPAWUR.

1. līmenis
Šis līmenis ir sadalīts divos apakšslāņos:

  • Starpprogrammatūras komponenti
  • Exampbalstās uz starpprogrammatūras komponentiem

Starpprogrammatūras komponenti
Starpprogrammatūra ir bibliotēku kopa, kas aptver FreeRTOS™ kodolu, FatFS un Sigfox™ protokolu bibliotēku. Horizontālā mijiedarbība starp šī slāņa komponentiem tiek veikta, izsaucot piedāvātās API.
Vertikālā mijiedarbība ar zemā slāņa draiveriem tiek veikta, izmantojot īpašus atzvanus un statiskos makro, kas ieviesti bibliotēkas sistēmas izsaukuma saskarnē.
Katra starpprogrammatūras komponenta galvenās iezīmes ir šādas:

  • FreeRTOS™ kodols: ievieš reāllaika operētājsistēmu (RTOS), kas paredzēta iegultajām sistēmām.
  • Sigfox™: ievieš Sigfox™ protokolu bibliotēku, kas ir saderīga ar Sigfox™ protokolu tīklu, un ietver RF testa protokolu bibliotēku, lai pārbaudītu pret RF Sigfox™ rīkiem.
  • FatFS: ievieš vispārējo FAT file sistēmas modulis.

Exampbalstās uz starpprogrammatūras komponentiem
Katram starpprogrammatūras komponentam ir viens vai vairāki examples, ko sauc arī par lietojumprogrammām, parādot, kā to izmantot. Integrācija, piemamptiek nodrošināti arī tie, kas izmanto vairākus starpprogrammatūras komponentus.

STM32CubeWL3 programmaparatūras pakotne ir beigusiesview

Atbalstītās STM32WL3x ierīces un aparatūra
STM32Cube piedāvā ļoti pārnēsājamu aparatūras abstrakcijas slāni (HAL), kas veidots ap vispārēju arhitektūru. Tas ļauj izmantot slāņu veidošanas principu, piemēram, izmantojot starpprogrammatūras slāni, lai īstenotu to funkcijas, padziļināti nezinot, kāds MCU tiek izmantots. Tas uzlabo bibliotēkas koda atkārtotu izmantošanu un nodrošina vieglu pārnešanu uz citām ierīcēm.

  • Turklāt ar savu slāņu arhitektūru STM32CubeWL3 piedāvā pilnu atbalstu visai STM32WL3x produktu līnijai.
  • Lietotājam ir jādefinē tikai pareizais makro stm32wl3x.h.

1. tabulā parādīts makro, kas jādefinē atkarībā no izmantotās STM32WL3x produktu līnijas ierīces. Šis makro ir jādefinē arī kompilatora priekšprocesorā.
1. tabula. STM32WL3x produktu līnijas makro

Makro, kas definēts stm32wl3x.h STM32WL3x produktu līnijas ierīces
stm32wl33 STM32WL33xx mikrokontrolleri

STM32CubeWL3 piedāvā bagātīgu examples un lietojumprogrammas visos līmeņos, padarot to viegli saprotamu un lietojamu jebkuru HAL draiveri vai starpprogrammatūras komponentus. Šie bijušieamples darbojas uz STMicroelectronics platēm, kas norādītas 2. tabulā.

Valde STM32WL3x plates atbalstītās ierīces
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

STM32CubeWL3 MCU pakotne var darboties ar jebkuru saderīgu aparatūru. Lietotāji vienkārši atjaunina BSP draiverus, lai portētu sniegto exampuz to dēļiem, ja tiem ir tādas pašas aparatūras funkcijas (piemēram, gaismas diodes vai pogas).

Programmaparatūras pakotne beigusiesview
STM32CubeWL3 MCU pakotnes risinājums ir pieejams vienā zip pakotnē, kuras struktūra ir parādīta 3. attēlā.
3. attēls. STM32CubeWL3 programmaparatūras pakotnes struktūra

STM32WL3x-Software-Package (4)

Uzmanību:

Lietotājs nedrīkst modificēt sastāvdaļas files. Lietotājs var rediģēt tikai \Projects avotus.
Katram dēlim komplekts examples ir nodrošināts ar iepriekš konfigurētiem projektiem EWARM, MDK-ARM un STM32CubeIDE rīku ķēdēm.
4. attēlā parādīta NUCLEO-WL33CCx plātņu projekta struktūra. STM32WL3x-Software-Package (5)

Bijušaisamples tiek klasificētas atkarībā no STM32CubeWL3 līmeņa, uz kuru tie attiecas. Tie ir nosaukti šādi:

  • 0. līmenis, piemamples sauc Examples, Piemamples_LL un Piemamples_MIX. Tie izmanto attiecīgi HAL draiverus, LL draiverus un HAL un LL draiveru kombināciju bez starpprogrammatūras komponenta. Demonstrācija exampir pieejami arī les.
  • 1. līmenis, piemamples sauc par lietojumprogrammām. Tie nodrošina tipiskus katra starpprogrammatūras komponenta lietošanas gadījumus.

Jebkuru programmaparatūras lietojumprogrammu konkrētai platei var ātri izveidot, izmantojot veidņu projektus, kas pieejami katalogos Templ ates un Templates_LL.

Examples, Piemamples_LL un Piemamples_MIX ir tāda pati struktūra:

  • \Inc mape, kurā ir visa galvene files.
  • \Src mape, kurā ir avota kods.
  • \EWARM, \MDK-ARM un \STM32CubeIDE mapes, kurās ir katras rīku ķēdes iepriekš konfigurēts projekts.
  • readme.md un readme.html, kas apraksta exampuzvedību un nepieciešamo vidi, lai tā darbotos.

Darba sākšana ar STM32CubeWL3

Vada pirmo bijušoample
Šajā sadaļā ir paskaidrots, cik vienkārši ir palaist pirmo bijušoample STM32CubeWL3 ietvaros. Tajā kā ilustrācija izmantota vienkārša LED pārslēgšanas ģenerēšana, kas darbojas uz NUCLEO-WL33CC1 plates:

  1. Lejupielādējiet STM32CubeWL3 MCU pakotni.
  2. Izsaiņojiet to vai palaidiet instalētāju, ja tāds ir, jūsu izvēlētā direktorijā.
  3. Nepārveidojiet pakotnes struktūru, kas parādīta 3. attēlā. STM32CubeWL3 programmaparatūras pakotnes struktūra. Ņemiet vērā, ka pakotni ieteicams kopēt arī vietā, kas atrodas tuvu saknes sējumam (kas nozīmē C:\ST vai G:\Tests), jo dažiem IDE rodas problēmas, ja ceļš ir pārāk garš.

Kā vadīt HAL example
Pirms iekraušanas un darbināšanas example, ļoti ieteicams izlasīt example readme file jebkurai konkrētai konfigurācijai.

  1. Pārlūkojiet sadaļu \Projects\NUCLEO-WL33CC\Examples.
  2. Atveriet mapes \GPIO, pēc tam \GPIO_EXTI.
  3. Atveriet projektu ar vēlamo rīku ķēdi. Ātrs beigasview par to, kā atvērt, izveidot un vadīt bijušoample ar atbalstītajām instrumentu ķēdēm ir norādīts zemāk.
  4. Pārbūvēt visu files un ielādējiet attēlu mērķa atmiņā.
  5. Palaidiet bijušoample. Lai iegūtu sīkāku informāciju, skatiet example readme file.

Lai atvērtu, izveidotu un vadītu bijušoampIzmantojot katru atbalstīto rīku ķēdi, veiciet tālāk norādītās darbības.

  • EWARM:
  1. Saskaņā ar Examples mapi, atveriet apakšmapi \EWARM.
  2. Palaidiet darbvietu Project.eww (darbvietas nosaukums var mainīties no viena piemample citam).
  3. Pārbūvēt visu files: [Projekts]> [Pārbūvēt visu].
  4. Ielādējiet projekta attēlu: [Projekts]> [Atkļūdošana].
  5. Palaidiet programmu: [Debug]> [Go (F5)].
  • MDK-ARM:
  1. Saskaņā ar Examples mapi, atveriet apakšmapi \MDK-ARM.
  2. Atveriet darbvietu Project.uvproj (darbvietas nosaukums var mainīties no viena piemample citam).
  3. Pārbūvēt visu files: [Projekts]> [Pārbūvēt visu mērķi files].
  4. Ielādējiet projekta attēlu: [Atkļūdošana]> [Sākt/pārtraukt atkļūdošanas sesiju].
  5. Palaidiet programmu: [Atkļūdot]> [Palaist (F5)].
  • STM32CubeIDE:
  1. Atveriet STM32CubeIDE rīku ķēdi.
  2. Klikšķiniet uz [File]>[Pārslēgt darbvietu]>[Cits] un pārlūkojiet STM32CubeIDE darbvietas direktoriju.
  3. Klikšķiniet uz [File]> [Importēt], atlasiet [Vispārīgi]> [Esošie projekti darbvietā] un pēc tam noklikšķiniet uz [Nākamais].
  4. Pārlūkojiet uz STM32CubeIDE darbvietas direktoriju un atlasiet projektu.
  5. Pārbūvēt visu projektu files: atlasiet projektu Project Explorer logā, pēc tam noklikšķiniet uz
    [Projekts]> [Izveidot projektu].
  6.  Palaidiet programmu: [Run]> [Debug (F11)].

Pielāgotas lietojumprogrammas izstrāde

STM32CubeMX izmantošana lietojumprogrammas izstrādei vai atjaunināšanai
STM32Cube MCU pakotnē gandrīz visi projekti examples tiek ģenerēti ar STM32CubeMX rīku, lai inicializētu sistēmu, perifērijas ierīces un starpprogrammatūru.

Esoša projekta tieša izmantošana, piemēram,ampSTM32CubeMX rīkam nepieciešama STM32CubeMX 6.12.0 vai jaunāka versija:

  • Pēc STM32CubeMX instalēšanas atveriet un, ja nepieciešams, atjauniniet piedāvāto projektu.
    Vienkāršākais veids, kā atvērt esošu projektu, ir dubultklikšķis uz *.ioc file lai STM32CubeMX automātiski atvērtu projektu un tā avotu files. STM32CubeMX ģenerē šādu projektu inicializācijas pirmkodu.
  • Galvenās lietojumprogrammas pirmkods ir ietverts komentāros “USER CODE BEGIN” un “USER CODE END”. Ja tiek mainīta perifērijas izvēle un iestatījumi, STM32CubeMX atjaunina koda inicializācijas daļu, vienlaikus saglabājot galvenās lietojumprogrammas avota kodu.

Lai izstrādātu pielāgotu projektu ar STM32CubeMX, veiciet soli pa solim norādīto procesu:

  1. Konfigurējiet visu nepieciešamo iegulto programmatūru, izmantojot pinout-konfliktu risinātāju, pulksteņa koka iestatījumu palīgu, enerģijas patēriņa kalkulatoru un utilītu, kas veic MCU perifērijas konfigurāciju (piemēram, GPIO vai USART).
  2. Ģenerējiet inicializācijas C kodu, pamatojoties uz atlasīto konfigurāciju. Šis kods ir gatavs lietošanai vairākās izstrādes vidēs. Lietotāja kods tiek saglabāts nākamajā koda paaudzē.
    Papildinformāciju par STM32CubeMX skatiet lietotāja rokasgrāmatā STM32CubeMX par STM32 konfigurāciju un inicializācijas C koda ģenerēšanu (UM1718).

Draiveri lietojumprogrammas

HAL pieteikums
Šajā sadaļā ir aprakstītas darbības, kas jāveic, lai izveidotu pielāgotu HAL lietojumprogrammu, izmantojot STM32CubeWL3:

  1. Izveidojiet projektu
    Lai izveidotu jaunu projektu, sāciet vai nu no veidnes projekta, kas paredzēts katrai platei sadaļā \Projects\< STM32xxx_yyy>\Templates vai no jebkura pieejamā projekta sadaļā \Projects\ \Piemampl es vai \Projects\ \Aplikācijas (kur attiecas uz dēļa nosaukumu). Veidnes projekts nodrošina tukšas galvenās cilpas funkciju. Tomēr tas ir labs sākumpunkts, lai izprastu STM32CubeWL32 projekta iestatījumus. Šai veidnei ir šādas īpašības:
    • Tajā ir HAL pirmkods, CMSIS un BSP draiveri, kas ir minimālais komponentu kopums, kas nepieciešams, lai izstrādātu kodu noteiktā platē.
    • Tajā ir iekļauti visu programmaparatūras komponentu ceļi.
    • Tas nosaka atbalstītās STM32WL3x produktu līnijas ierīces, ļaujot pareizi konfigurēt CMSIS un HAL draiverus.
    • Tas nodrošina lietošanai gatavu lietotāju fileir iepriekš konfigurēts, kā parādīts zemāk:
    • HAL inicializēts ar noklusējuma laika bāzi ar Arm® kodolu SysTick.
    • SysTick ISR ieviests HAL_Delay() mērķim.
      Piezīme. Kopējot esošu projektu uz citu vietu, pārliecinieties, vai ir atjaunināti visi iekļautie ceļi.
  2. Konfigurējiet programmaparatūras komponentus
    HAL un starpprogrammatūras komponenti piedāvā izveides laika konfigurācijas opciju kopu, izmantojot makro #define, kas deklarēti galvenē. file. Veidnes konfigurācija file tiek nodrošināts katrā komponentā, kas ir jāiekopē projekta mapē (parasti konfigurācija file ir nosaukts xxx_conf_template.h, fragments _template ir jānoņem, kopējot to projekta mapē). Konfigurācija file sniedz pietiekami daudz informācijas, lai izprastu katras konfigurācijas opcijas ietekmi. Sīkāka informācija ir pieejama katras sastāvdaļas dokumentācijā.
  3. Sāciet HAL bibliotēku
    Pēc pāriešanas uz galveno programmu lietojumprogrammas kodam ir jāizsauc HAL_Init() API, lai inicializētu HAL bibliotēku, kas veic šādus uzdevumus:
    • Zibatmiņas sākotnējās ielādes un SysTick pārtraukuma prioritātes konfigurācija (izmantojot makro, kas definēti stm3 2wl3x_hal_conf.h).
    •  SysTick konfigurācija, lai ik pēc milisekundes ģenerētu pārtraukumu ar SysTick pārtraukuma prioritāti TICK_INT_PRIO, kas definēta stm32wl3x_hal_conf.h.
    • NVIC grupas prioritātes iestatījums uz 0.
    • HAL_MspInit() atzvanīšanas funkcijas izsaukums, kas definēts lietotājam stm32wl3x_hal_msp.c file lai veiktu globālas zema līmeņa aparatūras inicializācijas.
  4. Konfigurējiet sistēmas pulksteni
    Sistēmas pulksteņa konfigurācija tiek veikta, izsaucot divas tālāk aprakstītās API:
    • HAL_RCC_OscConfig(): šī API konfigurē iekšējos un ārējos oscilatorus. Lietotājs izvēlas konfigurēt vienu vai visus oscilatorus.
    • HAL_RCC_ClockConfig(): šī API konfigurē sistēmas pulksteņa avotu, zibatmiņas latentumu un AHB un APB priekšskalotājus.
  5. Inicializējiet perifērijas ierīci
    •  Vispirms uzrakstiet perifērijas inicializācijas funkciju. Rīkojieties šādi:
    • Iespējot perifērijas pulksteni.
    • Konfigurējiet perifērijas GPIO.
    • Konfigurējiet DMA kanālu un iespējojiet DMA pārtraukumu (ja nepieciešams).
    • Iespējojiet perifērijas pārtraukumu (ja nepieciešams).
    • Rediģējiet failu stm32xxx_it.c, lai vajadzības gadījumā izsauktu nepieciešamos pārtraukumu apstrādātājus (perifēro un DMA).
    •  Rakstiet procesa pilnīgas atzvanīšanas funkcijas, ja ir paredzēts izmantot perifērijas pārtraukumu vai DMA.
    •  Lietotājā galvenajā.c file, inicializējiet perifērijas roktura struktūru, pēc tam izsauciet perifērijas inicializācijas funkciju, lai inicializētu perifērijas ierīci.
  6. Izstrādāt lietojumprogrammu
    Šajā stage, sistēma ir gatava un var sākties lietotāja lietojumprogrammas koda izstrāde.
    HAL nodrošina intuitīvus un lietošanai gatavus API, lai konfigurētu perifērijas ierīci. Tā atbalsta aptauju, pārtraukumus un DMA programmēšanas modeli, lai pielāgotos visām lietojumprogrammu prasībām. Lai iegūtu papildinformāciju par katras perifērijas ierīces lietošanu, skatiet bagātīgo exampkomplekts, kas iekļauts STM32CubeWL3 MCU pakotnē.

Uzmanību:
Noklusējuma HAL ieviešanā SysTick taimeris tiek izmantots kā laika bāze: tas ģenerē pārtraukumus ar regulāriem laika intervāliem. Ja HAL_Delay() tiek izsaukts no perifērijas ISR procesa, pārliecinieties, vai SysTick pārtraukumam ir augstāka prioritāte (skaitliski zemāka) nekā perifērijas pārtraukumam. Pretējā gadījumā zvanītāja ISR process ir
bloķēts. Funkcijas, kas ietekmē laika bāzes konfigurācijas, tiek deklarētas kā __vājas, lai lietotājam būtu iespējams ignorēt citas implementācijas. file (izmantojot vispārējas nozīmes taimeri, piemēram,ample vai citu laika avotu).
Plašāku informāciju skatiet HAL_TimeBase example.

LL pieteikums
Šajā sadaļā ir aprakstītas darbības, kas jāveic, lai izveidotu pielāgotu LL lietojumprogrammu, izmantojot STM32CubeWL3.

  1. Izveidojiet projektu
    Lai izveidotu jaunu projektu, vai nu sāciet no projekta Templates_LL, kas ir paredzēts katrai platei sadaļā \Projects\ \Templates_LL vai no jebkura pieejamā projekta sadaļā \Projects\ \E xamples_LL ( attiecas uz paneļa nosaukumu, piemēram, NUCLEO-WL32CC33).
    Veidnes projekts nodrošina tukšas galvenās cilpas funkciju, kas ir labs sākumpunkts, lai izprastu STM32CubeWL3 projekta iestatījumus. Veidnes galvenās īpašības ir šādas:
    • Tas satur LL un CMSIS draiveru pirmkodus, kas ir minimālais komponentu kopums, kas nepieciešams, lai izstrādātu kodu noteiktā platē.
    • Tajā ir iekļauti ceļi visiem nepieciešamajiem programmaparatūras komponentiem.
    • Tas atlasa atbalstīto STM32WL3x produktu līnijas ierīci un ļauj pareizi konfigurēt CMSIS un LL draiverus.
    • Tas nodrošina lietošanai gatavu lietotāju files, kas ir iepriekš konfigurēti šādi:
    • main.h: LED un USER_BUTTON definīcijas abstrakcijas slānis.
    • main.c: sistēmas pulksteņa konfigurācija maksimālai frekvencei.
  2. Pieslēgt LL example:
    • Kopējiet/ielīmējiet mapi Templates_LL — lai saglabātu sākotnējo avotu — vai tieši atjauniniet esošu Templa tes_LL projektu.
    • Pēc tam pārnešana galvenokārt sastāv no Templates_LL aizstāšanas files bijušaisamples_LL mērķprojekts.
    • Saglabājiet visas dēļa īpašās daļas. Skaidrības labad atsevišķas dēļa daļas ir atzīmētas ar īpašām tags:
      STM32WL3x-Software-Package (1)

Tādējādi galvenie pārnešanas soļi ir šādi:

  • Nomainiet stm32wl3x_it.h file.
  • Nomainiet failu stm32wl3x_it.c file.
  • Nomainiet galveno.h file un atjauniniet to: saglabājiet LL veidnes LED un lietotāja pogas definīciju sadaļā DĒĻA KONFIGURĀCIJA tags.
  • Nomainiet galveno.c file un atjauniniet to:
  • Saglabājiet SystemClock_Config() LL veidnes funkcijas pulksteņa konfigurāciju sadaļā BOARD SECIFIC CONFIGURATION tags.
  • Atkarībā no LED definīcijas nomainiet katru LDx gadījumu ar citu LDy, kas ir pieejams file galvenais.h.

Ar šīm modifikācijām bijušaisample darbojas uz mērķa dēļa.

RF lietojumprogrammas, demonstrācijas un piemamples
Dažāda veida RF lietojumprogrammas, demonstrācijas un piemamples ir pieejamas STM32CubeWL3 pakotnē. Tie ir uzskaitīti divās tālāk norādītajās sadaļās.

Zem GHz, piemamples un demonstrācijas
Šie bijušieamples demonstrē MRSUBG un LPAWUR radio perifērijas ierīču galvenās iezīmes. Šie bijušieamples ir pieejamas zem:

  • Projekti\NUCLEO-WL33CC\Examples\MRSUBG
  • Projekti\NUCLEO-WL33CC\Examples\LPAWUR
  • Projekti\NUCLEO-WL33CC\Demonstrācijas\MRSUBG
  • Projekti\NUCLEO-WL33CC\Demonstrācijas\LPAWUR

Katrs bijušaisample vai demonstrācija parasti sastāv no divām programmām, ko sauc par Tx un Rx, kas darbojas attiecīgi kā raidītājs un uztvērējs:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: standarta 802.15.4 noteiktā fiziskā slāņa ieviešana. Tas parāda, kā konfigurēt radio, lai pārraidītu vai saņemtu 802.15.4 paketes.
    • MRSUBG_BasicGeneric: STM32WL3x MR_SUBG pamata pakešu apmaiņa.
    • MRSUBG_Chat: vienkārša lietojumprogramma, kas parāda, kā vienā ierīcē izmantot Tx un Rx.
    • MRSUBG_DatabufferHandler: piemample, kas parāda, kā pārslēgties no datu bufera 0 un 1.
    • MRSUBG_Sequencer AutoAck: piemampkas automātiski nosūta un saņem pakešu apstiprinājumus (ACK).
    • MRSUBG_WMBusSTD: WM-Bus ziņojumu apmaiņa.
    • WakeupRadio: bijušaisample pārbaudīt LPAWUR radio perifērijas ierīci.
  • Demonstrācijas/MRSUBG
    • MRSUBG_RTC_Button_TX: šis piemample parāda, kā iestatīt SoC dziļās apturēšanas režīmā un konfigurēt MRSUBG, lai aktivizētu SoC, nospiežot PB2, lai nosūtītu kadru, vai pēc RTC taimera termiņa beigām.
    • MRSUBG_Sequencer_Sniff: Šis example parāda, kā iestatīt MRSUBG sekvenceri darboties sniff režīmā. Šis bijušaisample demonstrē uztvērēja pusi un prasa citu ierīci kā raidītāju.
    • MRSUBG_Timer: lietojumprogramma ieplāno vairākus MRSUBG taimera gadījumus (ar automātisko ielādi) ar dažādiem laika intervāliem.
    • MRSUBG_WakeupRadio_Tx: šis piemample paskaidro, kā iestatīt SoC dziļās apturēšanas režīmā un konfigurēt MRSUBG, lai aktivizētu SoC, nospiežot PB2, lai nosūtītu kadru. Šis bijušaisample demonstrē raidītāja pusi un prasa citu ierīci kā LPAWUR uztvērēju. Uztvērējs example atrodas mapē NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
  • Demonstrācijas/LPAWUR
    • LPAWUR_WakeupRadio_Rx: šis piemample paskaidro, kā iestatīt SoC dziļās apturēšanas režīmā un konfigurēt LPAWUR, lai aktivizētu SoC, kad tiek saņemts rāmis un tas ir pareizi saņemts. Šis bijušaisample demonstrē uztvērēja pusi un prasa citu ierīci kā raidītāju. Raidītājs example atrodas mapē NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.

Sigfox™ lietojumprogramma
Šīs lietojumprogrammas parāda, kā ieviest Sigfox™ scenāriju un izmantot pieejamās Sigfox™ API. Tie ir pieejami projekta ceļā Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: šī lietojumprogramma parāda, kā izmantot komandrindas interfeisu (CLI), lai nosūtītu komandas, kas izmanto Sigfox™ protokolu, lai nosūtītu ziņojumus un veiktu pirmssertifikācijas pārbaudes.
  • Sigfox_PushButton: šī lietojumprogramma ļauj novērtēt STM32WL33xx Sigfox™ ierīces radio iespējas. Nospiežot PB1, tiek pārraidīts testa Sigfox™ kadrs.

FAQ

  1. Kad man vajadzētu izmantot HAL, nevis LL draiverus?
    HAL draiveri piedāvā augsta līmeņa un uz funkcijām orientētas API ar augstu pārnesamības līmeni. Produkta vai perifērijas sarežģītība galalietotājiem ir paslēpta.
    LL draiveri piedāvā zema līmeņa reģistra līmeņa API ar labāku optimizāciju, bet mazāk pārnēsājamu. Viņiem ir nepieciešamas padziļinātas zināšanas par produkta vai IP specifikācijām.
  2. Vai HAL un LL draiverus var izmantot kopā? Ja jā, kādi ir ierobežojumi?
    Ir iespējams izmantot gan HAL, gan LL draiverus. Izmantojiet HAL perifērijas inicializācijas fāzei un pēc tam pārvaldiet I/O darbības ar LL draiveriem.
    Galvenā atšķirība starp HAL un LL ir tāda, ka HAL draiveriem ir jāizveido un jāizmanto rokturi operāciju pārvaldībai, savukārt LL draiveri darbojas tieši perifērijas reģistros. HAL un LL sajaukšana ir parādīta piemamples_MIX examples.
  3. Kā tiek iespējotas LL inicializācijas API?
    LL inicializācijas API un saistīto resursu (struktūru, literāļu un prototipu) definīciju nosaka kompilācijas slēdzis USE_FULL_LL_DRIVER.
    Lai varētu izmantot LL inicializācijas API, pievienojiet šo slēdzi rīkķēdes kompilatora priekšprocesoram.
  4. Vai ir kāds veidņu projekts MRSUBG/LPAWUR perifērijas exampmazāk?
    Lai izveidotu jaunu MRSUBG vai LPAWUR exampprojektu, sāciet no skeleta projekta, kas sniegts sadaļā \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG vai \Projects\NUCLEO-WL33CC\Examples\LPAWUR vai no jebkura pieejama projekta šajos pašos direktorijos.
  5. Kā STM32CubeMX var ģenerēt kodu, pamatojoties uz iegulto programmatūru?
    STM32CubeMX ir iebūvētas zināšanas par STM32 mikrokontrolleriem, tostarp to perifērijas ierīcēm un programmatūru, kas ļauj nodrošināt lietotājam grafisku attēlojumu un ģenerēt *.h vai *.c. files, pamatojoties uz lietotāja konfigurāciju.

Pārskatīšanas vēsture

3. tabula. Dokumentu pārskatīšanas vēsture

Datums Pārskatīšana Izmaiņas
29. gada 2024. marts 1 Sākotnējā izlaišana.
30. gada 2024. oktobris 2 Pilnīga integrācija STM32CubeWL3 in STM32Kubs. Atjaunināts:

Noņemts:

  • PC rīki, ieskaitot Navigators, STM32WL3 GUI, un MR-SUBG sekvences GUI
  • Kā WiSE-Studio IOMapper var ģenerēt kodu, pamatojoties uz iegulto programmatūru?
  • Vai Navigator ļauj piekļūt programmatūras pakotnes resursiem?

Dokumenti / Resursi

ST STM32WL3x programmatūras pakotne [pdfNorādījumi
STM32WL3x programmatūras pakotne, STM32WL3x, programmatūras pakotne, pakotne

Atsauces

Atstājiet komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *