STM32WL3x-loigo

Paketa e softuerit STM32WL3x

STM32WL3x-Software-Package -PRODCUCT

Specifikimet

  • Emri i produktit: paketa softuerike STM32CubeWL3
  • Përputhshmëria: mikrokontrolluesit STM32WL3x
  • Karakteristikat kryesore:
    • API me shtresa të ulëta (LL) dhe shtresa të abstraksionit të harduerit (HAL).
    • SigfoxTM, FatFS dhe komponentët e kernelit të mesëm të kernelit FreeRTOSTM
    • Aplikime dhe demonstrime

Udhëzimet e përdorimit të produktit

Fillimi
Për të filluar përdorimin e paketës softuerike STM32CubeWL3, ndiqni këto hapa:

  1. Shkarkoni paketën e softuerit nga zyrtari webfaqe.
  2. Instaloni mjedisin e nevojshëm të zhvillimit (p.sh. STM32CubeIDE, EWARM, MDK-ARM).
  3. Referojuni ishamples dhe aplikacionet e ofruara për udhëzim.

Arkitektura STM32CubeWL3 ka përfunduarview
Paketa e softuerit STM32CubeWL3 është ndërtuar rreth tre niveleve kryesore

  • Niveli 0: Shtresa e abstraksionit të harduerit (HAL) dhe drejtuesit BSP.
  • Niveli 1: Aplikacionet, bibliotekat dhe komponentët e bazuar në protokoll.

Pyetjet e bëra më shpesh (FAQ)

Pyetje: Cilat janë veçoritë kryesore të paketës softuerike STM32CubeWL3?
Përgjigje: Karakteristikat kryesore përfshijnë API-të me shtresa të ulëta dhe HAL, komponentët e programeve të mesme si SigfoxTM, FatFS, kernel FreeRTOSTM, aplikacionet dhe demonstrimet.

Hyrje

STM32Cube është një nismë origjinale e STMicroelectronics për të përmirësuar ndjeshëm produktivitetin e projektuesit duke reduktuar përpjekjet e zhvillimit, kohën dhe koston. STM32Cube mbulon të gjithë portofolin STM32.

STM32Cube përfshin:

  • Një grup mjetesh për zhvillimin e softuerit miqësorë për përdoruesit për të mbuluar zhvillimin e projektit nga konceptimi deri në realizim, ndër të cilat] janë:
    • STM32CubeMX, një mjet konfigurimi grafik i softuerit që lejon gjenerimin automatik të kodit të inicializimit C duke përdorur magjistarët grafikë
    • STM32CubeIDE, një mjet zhvillimi gjithëpërfshirës me konfigurimin periferik, gjenerimin e kodit, përpilimin e kodit dhe veçoritë e korrigjimit
    • STM32CubeCLT, një grup mjetesh zhvillimi të linjës së komandës gjithëpërfshirëse me përpilim kodi, programim të bordit dhe veçori të korrigjimit
    • STM32CubeProgrammer (STM32CubeProg), një mjet programimi i disponueshëm në versionet grafike dhe të linjës së komandës
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), mjete të fuqishme monitorimi për të rregulluar mirë sjelljen dhe performancën e aplikacioneve STM32 në kohë reale
  • Paketat STM32Cube MCU dhe MPU, platforma gjithëpërfshirëse të softuerëve të integruar specifikë për çdo seri mikrokontrollues dhe mikroprocesorësh (siç është STM32CubeWL3 për linjën e produkteve STM32WL3x), të cilat përfshijnë:
    • Shtresa e abstraksionit të harduerit STM32Cube (HAL), duke siguruar transportueshmëri maksimale në të gjithë portofolin STM32
    • API-të me shtresa të ulëta STM32Cube, duke siguruar performancën dhe gjurmët më të mira me një shkallë të lartë të kontrollit të përdoruesit mbi harduerin]
    • Një grup i qëndrueshëm i komponentëve të programit të mesëm si kerneli FreeRTOS™, FatFS dhe Sigfox™
    • Të gjitha programet e integruara të programeve kompjuterike me grupe të plota të pajisjeve periferike dhe aplikative p.shamples
  • Paketat e zgjerimit STM32Cube, të cilat përmbajnë komponentë softuerësh të integruar që plotësojnë funksionalitetet e paketave STM32Cube MCU dhe MPU me:
    • Zgjatjet e programit të mesëm dhe shtresat aplikative
    • Exampato funksionojnë në disa borde specifike të zhvillimit STMicroelectronics

Ky manual përdorimi përshkruan se si të filloni me Paketën MCU STM32CubeWL3.
Seksioni 2 përshkruan tiparet kryesore të STM32CubeWL3 dhe seksioni 3 ofron një mbiview të arkitekturës së saj dhe të strukturës së Paketës MCU.

Informacione të përgjithshme

STM32CubeWL3 ekzekuton aplikacione demonstrimi nën GHz, duke përfshirë binarët Sigfox™, në mikrokontrolluesit e linjës së produktit STM32WL3x bazuar në procesorin Arm® Cortex®-M0+.
Mikrokontrolluesit STM32WL3x futin pajisjen periferike të radios RF të përputhshme me teknologjinë më të fundit të STMicroelectronics, në përputhje me nën-GHz, e optimizuar për konsum jashtëzakonisht të ulët të energjisë dhe performancë të shkëlqyer radioje, për jetëgjatësi të pashembullt të baterisë.
Shënim: Arm është një markë tregtare e regjistruar e Arm Limited (ose filialeve të saj) në SHBA dhe/ose gjetkë.

Karakteristikat kryesore të STM32CubeWL3

  • Paketa STM32CubeWL3 MCU funksionon në mikrokontrollues 32-bitësh STM32 bazuar në procesorin Arm® Cortex®‑M0+. Ai mbledh, në një paketë të vetme, të gjithë komponentët e integruar të softuerit të përgjithshëm të nevojshëm për të zhvilluar një aplikacion për mikrokontrolluesit e linjës së produktit STM32WL3x.
  • Paketa përfshin API të shtresave të ulëta (LL) dhe shtresave të abstraksionit të harduerit (HAL) që mbulojnë harduerin e mikrokontrolluesit, së bashku me një grup të gjerë tëamples running në bordet STMicroelectronics. API-të HAL dhe LL janë të disponueshme në një licencë BSD me burim të hapur për lehtësinë e përdoruesit. Ai gjithashtu përfshin komponentët e ndërmjetëm të kernelit Sigfox™, FatFS dhe FreeRTOS™.
  • Paketa STM32CubeWL3 MCU gjithashtu ofron disa aplikacione dhe demonstrime që zbatojnë të gjithë komponentët e saj të programit të mesëm.
  • Paraqitja e komponentëve të Paketës MCU STM32CubeWL3 është ilustruar në Figurën 1.

Figura 1. Komponentët e paketës MCU STM32CubeWL3 

STM32WL3x-Software-Package (2)

Arkitektura STM32CubeWL3 ka përfunduarview

Zgjidhja e Paketës MCU STM32CubeWL3 është ndërtuar rreth tre niveleve të pavarura që ndërveprojnë lehtësisht siç përshkruhet në Figurën 2. STM32WL3x-Software-Package (3)Niveli 0
Ky nivel është i ndarë në tre nënshtresa:

  • Paketa mbështetëse e bordit (BSP).
  • Shtresa e abstraksionit të harduerit (HAL):
    • Drejtues periferik HAL
    • Drejtues me shtresa të ulëta
  • Përdorimi bazë periferik p.shamples.

Paketa e mbështetjes së bordit (BSP)
Kjo shtresë ofron një grup API-sh në lidhje me komponentët e harduerit në bordet e harduerit (të tilla si LED, butona dhe drejtues COM). Ai përbëhet nga dy pjesë:

  • Komponenti:
    Ky është drejtuesi në lidhje me pajisjen e jashtme në tabelë dhe jo me STM32. Drejtuesi i komponentit ofron API specifike për komponentët e jashtëm të drejtuesit BSP dhe mund të jetë i lëvizshëm në çdo tabelë tjetër.
  • Shoferi i BSP:

Ai lejon lidhjen e drejtuesve të komponentëve me një bord specifik dhe ofron një grup API-të miqësore për përdoruesit. Rregulli i emërtimit të API është BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP bazohet në një arkitekturë modulare që lejon transportim të lehtë në çdo harduer duke zbatuar thjesht rutinat e nivelit të ulët.

Shtresa e abstraksionit të harduerit (HAL) dhe shtresa e ulët (LL)
STM32CubeWL3 HAL dhe LL janë plotësuese dhe mbulojnë një gamë të gjerë kërkesash aplikimi:

  • Drejtuesit HAL ofrojnë API shumë portative të orientuara drejt funksioneve të nivelit të lartë. Ata fshehin MCU-në dhe kompleksitetin periferik tek përdoruesi fundor.
    Drejtuesit HAL ofrojnë API gjenerike të orientuara nga veçoritë me shumë instanca, të cilat thjeshtojnë zbatimin e aplikacionit të përdoruesit duke ofruar procese të gatshme për përdorim. Për shembullample, për pajisjet periferike të komunikimit (I2C, UART dhe të tjera), ai ofron API që lejojnë inicializimin dhe konfigurimin e pajisjes periferike, menaxhimin e transferimit të të dhënave bazuar në procesin e votimit, ndërprerjes ose DMA dhe trajtimin e gabimeve të komunikimit që mund të lindin gjatë komunikimit. API-të e drejtuesve HAL ndahen në dy kategori:
  1. API gjenerike, të cilat ofrojnë funksione të zakonshme dhe gjenerike për të gjithë mikrokontrolluesit e serisë STM32.
  2. API-të e zgjerimit, të cilat ofrojnë funksione specifike dhe të personalizuara për një familje specifike ose një numër të caktuar pjesësh.
  • API-të e nivelit të ulët ofrojnë API të nivelit të ulët në nivelin e regjistrit, me optimizim më të mirë, por më pak transportueshmëri. Ata kërkojnë një njohuri të thellë të MCU dhe specifikimeve periferike.
    Drejtuesit LL janë krijuar për të ofruar një shtresë të shpejtë të lehtë të orientuar nga ekspertët që është më afër harduerit sesa HAL. Ndryshe nga HAL, API-të LL nuk ofrohen për pajisjet periferike ku aksesi i optimizuar nuk është një veçori kryesore, ose për ato që kërkojnë konfigurim të rëndë softuerësh ose grup kompleks të nivelit të lartë.

Karakteristika e drejtuesve LL:

  • Një grup funksionesh për të inicializuar tiparet kryesore periferike sipas parametrave të specifikuar në strukturat e të dhënave.
  • Një grup funksionesh për të mbushur strukturat e të dhënave të inicializimit me vlerat e rivendosjes që korrespondojnë me secilën fushë.
  • Funksioni për de-initializimin periferik (regjistrat periferikë të rikthyer në vlerat e tyre të paracaktuara).
  • Një grup funksionesh inline për qasje direkte dhe atomike të regjistrit.
  • Pavarësi e plotë nga HAL dhe aftësi për t'u përdorur në modalitetin e pavarur (pa drejtues HAL).
  • Mbulim i plotë i veçorive periferike të mbështetura.

Përdorimi bazë periferik p.shamples
Kjo shtresë mbyll ishamples të ndërtuara mbi pajisjet periferike STM32 duke përdorur vetëm burimet HAL dhe BSP.
Demonstrimi p.shamples janë gjithashtu të disponueshme për të treguar ish më komplekseampskenarë me pajisje periferike specifike, të tilla si MRSUBG dhe LPAWUR.

Niveli 1
Ky nivel ndahet në dy nënshtresa:

  • Komponentët e programit të mesëm
  • Examples bazuar në komponentët e programit të mesëm

Komponentët e programit të mesëm
Softueri i mesëm është një grup bibliotekash që mbulojnë bibliotekën e protokollit FreeRTOS™, FatFS dhe Sigfox™. Ndërveprimi horizontal ndërmjet komponentëve të kësaj shtrese bëhet duke thirrur API-të e paraqitura.
Ndërveprimi vertikal me drejtuesit e nivelit të ulët bëhet përmes thirrjeve specifike dhe makrove statike të implementuara në ndërfaqen e thirrjeve të sistemit të bibliotekës.
Karakteristikat kryesore të secilit komponent të programit të mesëm janë si më poshtë:

  • Kerneli FreeRTOS™: implementon një sistem operativ në kohë reale (RTOS), i krijuar për sisteme të integruara.
  • Sigfox™: zbaton bibliotekën e protokollit Sigfox™ në përputhje me rrjetin e protokollit Sigfox™ dhe përfshin bibliotekën e protokollit të testimit RF për të testuar kundër mjeteve RF Sigfox™.
  • FatFS: implementon FAT gjenerike file moduli i sistemit.

Examples bazuar në komponentët e programit të mesëm
Çdo komponent i programit të mesëm vjen me një ose më shumë ishamples, të quajtura edhe aplikacione, duke treguar se si të përdoret. Integrimi p.shampOfrohen gjithashtu edhe elementë që përdorin disa komponentë të ndërmjetëm.

Paketa e firmuerit STM32CubeWL3 ka përfunduarview

Pajisjet dhe pajisjet e mbështetura STM32WL3x
STM32Cube ofron një shtresë abstraksioni harduerësh shumë të lëvizshëm (HAL) të ndërtuar rreth një arkitekture të përgjithshme. Ai lejon parimin e shtresave të ndërtuara, të tilla si përdorimi i shtresës së programit të mesëm për të zbatuar funksionet e tyre pa ditur, në thellësi, se çfarë përdoret MCU. Kjo përmirëson ripërdorimin e kodit të bibliotekës dhe siguron transportueshmëri të lehtë në pajisjet e tjera.

  • Për më tepër, me arkitekturën e tij me shtresa, STM32CubeWL3 ofron mbështetje të plotë për të gjithë linjën e produkteve STM32WL3x.
  • Përdoruesi duhet të përcaktojë vetëm makronë e duhur në stm32wl3x.h.

Tabela 1 tregon makro që duhet përcaktuar në varësi të pajisjes së linjës së produktit STM32WL3x të përdorur. Kjo makro gjithashtu duhet të përcaktohet në paraprocesorin e kompajlerit.
Tabela 1. Makro për linjën e produkteve STM32WL3x

Makro e përcaktuar në stm32wl3x.h Pajisjet e linjës së produktit STM32WL3x
stm32wl33 Mikrokontrolluesit STM32WL33xx

STM32CubeWL3 përmban një grup të pasur të ishamples dhe aplikacione në të gjitha nivelet, duke e bërë të lehtë për të kuptuar dhe përdorur çdo drejtues HAL ose komponentë të programit të mesëm. Këto ishamples ekzekutohen në bordet STMicroelectronics të listuara në Tabelën 2.

Bordi Pajisjet e mbështetura nga bordi STM32WL3x
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

Paketa STM32CubeWL3 MCU mund të funksionojë në çdo pajisje të pajtueshme. Përdoruesit thjesht përditësojnë drejtuesit e BSP për të portuar ish-në e dhënëamples në bordet e tyre, nëse këto kanë të njëjtat karakteristika harduerike (të tilla si LED ose butona).

Paketa e firmuerit përfundoiview
Zgjidhja e paketës STM32CubeWL3 MCU ofrohet në një paketë të vetme zip që ka strukturën e treguar në Figurën 3.
Figura 3. Struktura e paketës së firmuerit STM32CubeWL3

STM32WL3x-Software-Package (4)

Kujdes:

Përdoruesi nuk duhet të modifikojë komponentët files. Përdoruesi mund të modifikojë vetëm burimet e \Projects.
Për çdo tabelë, një grup i p.shamples ofrohet me projekte të parakonfiguruara për zinxhirët e veglave EWARM, MDK-ARM dhe STM32CubeIDE.
Figura 4 tregon strukturën e projektit për bordet NUCLEO-WL33CCx. STM32WL3x-Software-Package (5)

Ishamples klasifikohen në varësi të nivelit STM32CubeWL3 për të cilin aplikohen. Ato emërtohen si më poshtë:

  • Niveli 0 p.shamples quhen Shembullamples, p.shamples_LL, dhe Examples_MIX. Ata përdorin përkatësisht drejtuesit HAL, drejtuesit LL dhe një përzierje të drejtuesve HAL dhe LL pa asnjë komponent ndërmjetësues. Demonstrata p.shamples janë gjithashtu në dispozicion.
  • Niveli 1 p.shamples quhen Aplikacione. Ato ofrojnë raste tipike të përdorimit të secilit komponent të programit të mesëm.

Çdo aplikacion firmware për një tabelë të caktuar mund të ndërtohet shpejt duke përdorur projektet e shablloneve të disponueshme në drejtoritë Templ ates dhe Templates_LL.

Examples, p.shamples_LL, dhe Examples_MIX kanë të njëjtën strukturë:

  • Dosja \Inc që përmban të gjithë kokën files.
  • Dosja \Src që përmban kodin burimor.
  • Dosjet \EWARM, \MDK-ARM dhe \STM32CubeIDE që përmbajnë projektin e parakonfiguruar për çdo zinxhir veglash.
  • readme.md dhe readme.html duke përshkruar ishampsjelljen dhe mjedisin e nevojshëm për ta bërë atë të funksionojë.

Fillimi me STM32CubeWL3

Drejtimi i një ish të parëample
Ky seksion shpjegon se sa e thjeshtë është të drejtosh një ish të parëample brenda STM32CubeWL3. Ai përdor si ilustrim gjenerimin e një ndërruesi të thjeshtë LED që funksionon në tabelën NUCLEO-WL33CC1:

  1. Shkarkoni paketën STM32CubeWL3 MCU.
  2. Shkëputeni atë, ose ekzekutoni instaluesin nëse ofrohet, në një drejtori të zgjedhjes suaj.
  3. Sigurohuni që të mos modifikoni strukturën e paketës së treguar në figurën 3. Struktura e paketës së firmuerit STM32CubeWL3. Vini re se rekomandohet gjithashtu të kopjoni paketën në një vendndodhje afër vëllimit rrënjë (që do të thotë C:\ST ose G:\Tests), pasi disa IDE hasin probleme kur shtegu është shumë i gjatë.

Si të drejtoni një ish HALample
Përpara se të ngarkoni dhe ekzekutoni një ishample, rekomandohet fuqimisht të lexoni ishample readme file për çdo konfigurim specifik.

  1. Shfletoni te \Projects\NUCLEO-WL33CC\Examples.
  2. Hapni dosjet \GPIO, më pas \GPIO_EXTI.
  3. Hapni projektin me zinxhirin e preferuar të veglave. Një fund i shpejtëview se si të hapni, ndërtoni dhe drejtoni një ishample me zinxhirët e mjeteve të mbështetura është dhënë më poshtë.
  4. Rindërtoni të gjitha files dhe ngarkoni imazhin në memorien e synuar.
  5. Drejtoni ish-inample. Për më shumë detaje, referojuni ishample readme file.

Për të hapur, ndërtuar dhe drejtuar një ishampme secilin prej zinxhirëve të mjeteve të mbështetura, ndiqni hapat e mëposhtëm:

  • Ngrohja:
  1. Nën Examples, hapni nënfolderin \EWARM.
  2. Hapni hapësirën e punës Project.eww (emri i hapësirës së punës mund të ndryshojë nga një shembullample te tjetri).
  3. Rindërtoni të gjitha files: [Project]>[Rindërtoni të gjitha].
  4. Ngarko imazhin e projektit: [Project]>[Debug].
  5. Ekzekutoni programin: [Debug]>[Go (F5)].
  • MDK-ARM:
  1. Nën Examples, hapni nënfolderin \MDK-ARM.
  2. Hapni hapësirën e punës Project.uvproj (emri i hapësirës së punës mund të ndryshojë nga një shembullample te tjetri).
  3. Rindërtoni të gjitha files: [Project]>[Rindërtoni të gjithë objektivin files].
  4. Ngarko imazhin e projektit: [Debug]>[Start/Stop Debug Session].
  5. Ekzekutoni programin: [Debug]>[Run (F5)].
  • STM32CubeIDE:
  1. Hapni zinxhirin e veglave STM32CubeIDE.
  2. Klikoni mbi [File]>[Ndërroni hapësirën e punës]>[Të tjera] dhe shfletoni në drejtorinë e hapësirës së punës STM32CubeIDE.
  3. Klikoni mbi [File]>[Import], zgjidhni [General]>[Existing Projects into Workspace] dhe më pas klikoni [Next].
  4. Shfletoni në drejtorinë e hapësirës së punës STM32CubeIDE dhe zgjidhni projektin.
  5. Rindërtoni të gjithë projektin files: Zgjidhni projektin në dritaren e Project Explorer dhe më pas klikoni në
    Menuja [Project]> [Ndërtimi i projektit].
  6.  Ekzekutoni programin: [Run]>[Debug (F11)].

Zhvillimi i një aplikacioni të personalizuar

Përdorimi i STM32CubeMX për të zhvilluar ose përditësuar një aplikacion
Në paketën STM32Cube MCU, pothuajse i gjithë projekti p.shamples gjenerohen me mjetin STM32CubeMX për të inicializuar sistemin, pajisjet periferike dhe programin e mesëm.

Përdorimi i drejtpërdrejtë i një projekti ekzistues p.shample nga mjeti STM32CubeMX kërkon STM32CubeMX 6.12.0 ose më të lartë:

  • Pas instalimit të STM32CubeMX, hapni dhe nëse është e nevojshme përditësoni një projekt të propozuar.
    Mënyra më e thjeshtë për të hapur një projekt ekzistues është të klikoni dy herë në *.ioc file në mënyrë që STM32CubeMX të hapë automatikisht projektin dhe burimin e tij files. STM32CubeMX gjeneron kodin burimor të inicializimit të projekteve të tilla.
  • Kodi burimor kryesor i aplikacionit përmbahet nga komentet "KODI I PERDORIMIT FILLIM" dhe "KODI I PËRDORIMIT FUND". Nëse zgjedhja periferike dhe cilësimet modifikohen, STM32CubeMX përditëson pjesën e inicializimit të kodit duke ruajtur kodin burimor të aplikacionit kryesor.

Për të zhvilluar një projekt të personalizuar me STM32CubeMX, ndiqni procesin hap pas hapi:

  1. Konfiguro të gjithë softuerin e integruar të kërkuar duke përdorur një zgjidhës të konfliktit të pikës, një ndihmës për vendosjen e pemës së orës, një kalkulator të konsumit të energjisë dhe programin që kryen konfigurimin periferik të MCU (si GPIO ose USART).
  2. Gjeneroni kodin e inicializimit C bazuar në konfigurimin e zgjedhur. Ky kod është gati për t'u përdorur në disa mjedise zhvillimi. Kodi i përdoruesit ruhet në gjenerimin e kodit të ardhshëm.
    Për më shumë informacion rreth STM32CubeMX, referojuni manualit të përdorimit STM32CubeMX për konfigurimin dhe inicializimin e STM32 gjenerimin e kodit C (UM1718).

Aplikacionet e shoferit

Aplikimi HAL
Ky seksion përshkruan hapat e nevojshëm për të krijuar një aplikacion të personalizuar HAL duke përdorur STM32CubeWL3:

  1. Krijo një projekt
    Për të krijuar një projekt të ri, filloni ose nga projekti Template i ofruar për çdo tabelë nën \Projects\< STM32xxx_yyy>\Templates ose nga çdo projekt i disponueshëm nën \Projects\ \Pshampl es ose \Projektet\ \Aplikacionet (ku i referohet emrit të bordit). Projekti Template ofron një funksion të ciklit kryesor bosh. Sidoqoftë, është një pikënisje e mirë për të kuptuar cilësimet e projektit STM32CubeWL32. Modeli ka karakteristikat e mëposhtme:
    • Ai përmban kodin burimor HAL, CMSIS dhe drejtuesit BSP, të cilët janë grupi minimal i komponentëve të kërkuar për të zhvilluar një kod në një tabelë të caktuar.
    • Ai përmban shtigjet e përfshira për të gjithë komponentët e firmuerit.
    • Ai përcakton pajisjet e mbështetura të linjës së produktit STM32WL3x, duke lejuar që drejtuesit CMSIS dhe HAL të konfigurohen saktë.
    • Ai siguron përdorues të gatshëm për t'u përdorur files parakonfiguruar siç tregohet më poshtë:
    • HAL inicializohet me bazën kohore të paracaktuar me SysTick bërthamës Arm®.
    • SysTick ISR zbatohet për qëllimin HAL_Delay().
      Shënim: Kur kopjoni një projekt ekzistues në një vend tjetër, sigurohuni që të gjitha shtigjet e përfshira të jenë përditësuar.
  2. Konfiguro komponentët e firmuerit
    Komponentët HAL dhe Middleware ofrojnë një sërë opsionesh të konfigurimit të kohës së ndërtimit duke përdorur makro #define të deklaruara në një kokë file. Një konfigurim shabllon file ofrohet brenda çdo komponenti, i cili duhet të kopjohet në dosjen e projektit (zakonisht konfigurimi file është quajtur xxx_conf_template.h, fragmenti _template duhet të hiqet kur kopjohet në dosjen e projektit). Konfigurimi file ofron informacion të mjaftueshëm për të kuptuar ndikimin e secilit opsion konfigurimi. Informacion më të detajuar është i disponueshëm në dokumentacionin e dhënë për secilin komponent.
  3. Filloni bibliotekën HAL
    Pas kalimit te programi kryesor, kodi i aplikacionit duhet të thërrasë API-në HAL_Init() për të inicializuar bibliotekën HAL, e cila kryen detyrat e mëposhtme:
    • Konfigurimi i marrjes paraprake të memories flash dhe prioriteti i ndërprerjes SysTick (nëpërmjet makrove të përcaktuara në stm3 2wl3x_hal_conf.h).
    •  Konfigurimi i SysTick për të gjeneruar një ndërprerje çdo milisekonda në prioritetin e ndërprerjes SysTick TICK_INT_PRIO të përcaktuar në stm32wl3x_hal_conf.h.
    • Vendosja e prioritetit të grupit NVIC në 0.
    • Thirrja e funksionit të kthimit të thirrjes HAL_MspInit() e përcaktuar në përdoruesin stm32wl3x_hal_msp.c file për të kryer inicializimet globale të harduerit të nivelit të ulët.
  4. Konfiguro orën e sistemit
    Konfigurimi i orës së sistemit bëhet duke thirrur dy API-të e përshkruara më poshtë:
    • HAL_RCC_OscConfig(): kjo API konfiguron oshilatorët e brendshëm dhe të jashtëm. Përdoruesi zgjedh të konfigurojë një ose të gjithë oshilatorët.
    • HAL_RCC_ClockConfig(): kjo API konfiguron burimin e orës së sistemit, vonesën e memories flash dhe paravlerësuesit AHB dhe APB.
  5. Inicializoni pajisjen periferike
    •  Fillimisht shkruani funksionin e inicializimit periferik. Veproni si më poshtë:
    • Aktivizo orën periferike.
    • Konfiguro GPIO-të periferike.
    • Konfiguro kanalin DMA dhe aktivizo ndërprerjen DMA (nëse nevojitet).
    • Aktivizo ndërprerjen periferike (nëse nevojitet).
    • Redaktoni stm32xxx_it.c për të thirrur mbajtësit e kërkuar të ndërprerjeve (periferike dhe DMA), nëse është e nevojshme.
    •  Shkruani funksionet e plotë të procesit të kthimit të thirrjes nëse synohet të përdoret një ndërprerje periferike ose DMA.
    •  Në përdoruesit kryesor.c file, inicializoni strukturën e dorezës periferike dhe më pas thirrni funksionin e inicializimit periferik për të inicializuar pajisjen periferike.
  6. Zhvilloni një aplikacion
    Në këtë stage, sistemi është gati dhe mund të fillojë zhvillimi i kodit të aplikacionit të përdoruesit.
    HAL ofron API intuitive dhe të gatshme për përdorim për të konfiguruar pajisjen periferike. Ai mbështet sondazhet, ndërprerjet dhe një model programimi DMA, për të përshtatur çdo kërkesë aplikimi. Për më shumë detaje se si të përdorni çdo pajisje periferike, referojuni ish të pasuritampSeti i ofruar në paketën STM32CubeWL3 MCU.

Kujdes:
Në zbatimin e parazgjedhur HAL, kohëmatësi SysTick përdoret si bazë kohore: ai gjeneron ndërprerje në intervale të rregullta kohore. Nëse HAL_Delay() thirret nga procesi ISR ​​periferik, sigurohuni që ndërprerja SysTick të ketë një përparësi më të lartë (numerikisht më të ulët) se ndërprerja periferike. Përndryshe, procesi ISR ​​i thirrësit është
bllokuar. Funksionet që ndikojnë në konfigurimet e bazës kohore deklarohen si __dobëta për të bërë të mundur tejkalimin në rast të zbatimeve të tjera në përdorues file (duke përdorur një kohëmatës për qëllime të përgjithshme, p.shample, ose një burim tjetër kohor).
Për më shumë detaje, referojuni HAL_TimeBase ishample.

Aplikimi LL
Ky seksion përshkruan hapat e nevojshëm për të krijuar një aplikacion të personalizuar LL duke përdorur STM32CubeWL3.

  1. Krijo një projekt
    Për të krijuar një projekt të ri, ose filloni nga projekti Templates_LL i ofruar për çdo bord nën \Projects\ \Templates_LL ose nga ndonjë projekt i disponueshëm nën \Projects\ \E xamples_LL ( i referohet emrit të tabelës, siç është NUCLEO-WL32CC33).
    Projekti i shabllonit ofron një funksion të ciklit kryesor bosh, i cili është një pikënisje e mirë për të kuptuar cilësimet e projektit për STM32CubeWL3. Karakteristikat kryesore të shabllonit janë si më poshtë:
    • Ai përmban kodet burimore të drejtuesve LL dhe CMSIS, të cilët janë grupi minimal i komponentëve të nevojshëm për të zhvilluar kodin në një tabelë të caktuar.
    • Ai përmban shtigjet e përfshira për të gjithë komponentët e kërkuar të firmuerit.
    • Ai zgjedh pajisjen e mbështetur të linjës së produktit STM32WL3x dhe lejon konfigurimin e saktë të drejtuesve CMSIS dhe LL.
    • Ai siguron përdorues të gatshëm për përdorim files që janë parakonfiguruar si më poshtë:
    • main.h: Shtresa abstraksioni e definicionit LED dhe USER_BUTTON.
    • main.c: Konfigurimi i orës së sistemit për frekuencë maksimale.
  2. Port LL exampe:
    • Kopjoni/ngjisni dosjen Templates_LL – për të mbajtur burimin fillestar – ose përditësoni drejtpërdrejt një projekt ekzistues Templa tes_LL.
    • Pastaj, portimi konsiston kryesisht në zëvendësimin e Templates_LL files nga Exampprojekti i synuar les_LL.
    • Mbani të gjitha pjesët specifike të bordit. Për arsye të qartësisë, pjesët specifike të tabelës janë shënuar me specifikë tags:
      STM32WL3x-Software-Package (1)

Kështu, hapat kryesorë të bartjes janë si më poshtë:

  • Zëvendësoni stm32wl3x_it.h file.
  • Zëvendësoni stm32wl3x_it.c file.
  • Zëvendësoni kryesoren.h file dhe përditësojeni: Mbajeni përkufizimin LED dhe butonin e përdoruesit të shabllonit LL nën KONFIGURIMI SPECIFIC BOARD tags.
  • Zëvendësoni kryesoren.c file dhe përditësojeni atë:
  • Mbajeni konfigurimin e orës së funksionit të shabllonit SystemClock_Config() LL nën KONFIGURIMI SPECIFIC BOARD tags.
  • Në varësi të përkufizimit LED, zëvendësoni çdo dukuri LDx me një tjetër LDy të disponueshme në file kryesore.h.

Me këto modifikime, ishample shkon në bordin e synuar.

Aplikimet RF, demonstrimet dhe p.shamples
Lloje të ndryshme aplikimesh RF, demonstrime dhe p.shamples janë në dispozicion në paketën STM32CubeWL3. Ato janë renditur në dy seksionet më poshtë.

Nën-GHz p.shamples dhe demonstrata
Këto ishamples demonstrojnë tiparet kryesore të periferikëve radio MRSUBG dhe LPAWUR. Këto ishampato janë në dispozicion nën:

  • Projektet\NUCLEO-WL33CC\P.shamples\MRSUBG
  • Projektet\NUCLEO-WL33CC\P.shamples\LPAWUR
  • Projektet\NUCLEO-WL33CC\Demonstrimet\MRSUBG
  • Projektet\NUCLEO-WL33CC\Demonstrimet\LPAWUR

Çdo ishample ose demonstrimi përgjithësisht përbëhet nga dy programe të quajtura Tx dhe Rx që veprojnë si transmetues dhe marrës, përkatësisht:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: një zbatim i shtresës fizike të përcaktuar nga standardi 802.15.4. Ai tregon se si të konfiguroni radion për të transmetuar ose marrë pako 802.15.4.
    • MRSUBG_BasicGeneric: Një shkëmbim i paketave bazë STM32WL3x MR_SUBG.
    • MRSUBG_Chat: Një aplikacion i thjeshtë që tregon se si të përdorni Tx dhe Rx në të njëjtën pajisje.
    • MRSUBG_Databuffer Handler: Një ishampqë tregon se si të ndërroni nga Databuffer 0 dhe 1.
    • MRSUBG_Sequencer AutoAck: Një ishample që transmeton dhe merr automatikisht konfirmimet e paketave (ACK).
    • MRSUBG_WMBusSTD: Një shkëmbim i mesazheve WM-Bus.
    • WakeupRadio: Një ishample për të testuar pajisjen periferike të radios LPAWUR.
  • Demonstrata/MRSUBG
    • MRSUBG_RTC_Button_TX: Kjo p.shample tregon se si të vendosni SoC në modalitetin e ndalimit të thellë dhe të konfiguroni MRSUBG për të zgjuar SoC duke shtypur PB2 për të dërguar një kornizë ose pas skadimit të kohëmatësit RTC.
    • MRSUBG_Sequencer_Sniff: Ky pshample tregon se si të vendosni sekuencuesin MRSUBG që të funksionojë në modalitetin e nuhatjes. Ky ishample demonstron anën e marrësit dhe kërkon një pajisje tjetër si transmetues.
    • MRSUBG_Timer: Aplikacioni planifikon disa raste të kohëmatësit MRSUBG (me ngarkim automatik) me intervale të ndryshme kohore.
    • MRSUBG_WakeupRadio_Tx: Kjo p.shample shpjegon se si të vendosni SoC në modalitetin e ndalimit të thellë dhe të konfiguroni MRSUBG për të zgjuar SoC duke shtypur PB2 për të dërguar një kornizë. Ky ishample demonstron anën e transmetuesit dhe kërkon një pajisje tjetër si marrës LPAWUR. Marrësi ishample ndodhet nën dosjen NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
  • Demonstrata/LPAWUR
    • LPAWUR_WakeupRadio_Rx: Kjo p.shample shpjegon se si të vendosni SoC në modalitetin e ndalimit të thellë dhe të konfiguroni LPAWUR për të zgjuar SoC-në kur një kornizë të arrijë dhe të merret saktë. Ky ishample demonstron anën e marrësit dhe kërkon një pajisje tjetër si transmetues. Transmetuesi p.shample ndodhet nën dosjen NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.

Aplikacioni Sigfox™
Këto aplikacione tregojnë se si të zbatohet një skenar Sigfox™ dhe të përdoren API-të e disponueshme të Sigfox™. Ato janë të disponueshme në shtegun e projektit Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: Ky aplikacion tregon se si të përdoret një ndërfaqe e linjës së komandës (CLI) për të dërguar komanda që përdorin protokollin Sigfox™ për të dërguar mesazhe dhe për të kryer teste të para-certifikimit.
  • Sigfox_PushButton: Ky aplikacion lejon vlerësimin e aftësive të radios të pajisjes STM32WL33xx Sigfox™. Shtypja e PB1 transmeton një kornizë testuese Sigfox™.

FAQ

  1. Kur duhet të përdor HAL në vend të drejtuesve LL?
    Drejtuesit HAL ofrojnë API të nivelit të lartë dhe të orientuar drejt funksionit, me një nivel të lartë transportueshmërie. Kompleksiteti i produktit ose periferik është i fshehur për përdoruesit fundorë.
    Drejtuesit LL ofrojnë API të nivelit të regjistrit të nivelit të ulët, me optimizim më të mirë, por më pak të lëvizshëm. Ato kërkojnë njohuri të thella të specifikimeve të produktit ose IP.
  2. A mund të përdoren drejtuesit HAL dhe LL së bashku? Nëse po, cilat janë kufizimet?
    Është e mundur të përdoren të dy drejtuesit HAL dhe LL. Përdorni HAL për fazën e inicializimit periferik dhe më pas menaxhoni operacionet I/O me drejtuesit LL.
    Dallimi kryesor midis HAL dhe LL është se drejtuesit HAL kërkojnë të krijojnë dhe përdorin doreza për menaxhimin e funksionimit ndërsa drejtuesit LL veprojnë drejtpërdrejt në regjistrat periferikë. Përzierja e HAL dhe LL është ilustruar në Shembamples_MIX examples.
  3. Si aktivizohen API-të e inicializimit LL?
    Përkufizimi i API-ve të inicializimit të LL dhe burimeve të lidhura (strukturat, literalet dhe prototipet) kushtëzohet nga çelësi i përpilimit USE_FULL_LL_DRIVER.
    Për të qenë në gjendje të përdorni API-të e inicializimit LL, shtoni këtë ndërprerës në paraprocesorin e përpiluesit të zinxhirit të veglave.
  4. A ka ndonjë projekt shabllon për MRSUBG/LPAWUR ex periferikamples?
    Për të krijuar një ish MRSUBG ose LPAWUR të riampprojekti, ose filloni nga projekti i skeletit të ofruar nën \Pr jects\NUCLEO-WL33CC\Examples\MRSUBG ose \Projects\NUCLEO-WL33CC\Examples\LPAWUR, ose nga ndonjë projekt i disponueshëm nën të njëjtat drejtori.
  5. Si mund të gjenerojë STM32CubeMX kod bazuar në softuer të integruar?
    STM32CubeMX ka një njohuri të integruar të mikrokontrolluesve STM32, duke përfshirë pajisjet periferike dhe softuerin e tyre, gjë që e lejon atë të sigurojë një paraqitje grafike për përdoruesit dhe të gjenerojë *.h ose *.c files bazuar në konfigurimin e përdoruesit.

Historia e rishikimit

Tabela 3. Historia e rishikimit të dokumentit

Data Rishikim Ndryshimet
29-Mars-2024 1 Lëshimi fillestar.
30-tetor-2024 2 Integrimi i plotë i STM32CubeWL3 in STM32Cube. Përditësuar:

U hoq:

  • Mjete për PC, duke përfshirë Navigator, GUI STM32WL3, dhe MR-SUBG Sequencer GUI
  • Si mundet WiSE-Studio IOMapper të gjenerojë kod bazuar në softuer të integruar?
  • A lejon Navigator qasje në burimet e paketës softuerike?

Dokumentet / Burimet

Paketa softuerike ST STM32WL3x [pdfUdhëzime
Paketa softuerike STM32WL3x, STM32WL3x, Paketa softuerike, Paketa

Referencat

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fushat e kërkuara janë shënuar *