STM32WL3x softverski paket
Specifikacije
- Naziv proizvoda: STM32CubeWL3 softverski paket
- Kompatibilnost: STM32WL3x mikrokontroleri
- Glavne karakteristike:
- API-ji niskog sloja (LL) i sloja apstrakcije hardvera (HAL).
- SigfoxTM, FatFS i FreeRTOSTM komponente međuverskog softvera kernela
- Aplikacije i demonstracije
Upute za upotrebu proizvoda
Getting Started
Da biste počeli koristiti softverski paket STM32CubeWL3, slijedite ove korake:
- Preuzmite softverski paket sa službenog website.
- Instalirajte potrebno razvojno okruženje (npr. STM32CubeIDE, EWARM, MDK-ARM).
- Pogledajte prampdatoteke i aplikacije date za smjernice.
STM32CubeWL3 Arhitektura završenaview
Softverski paket STM32CubeWL3 izgrađen je oko tri glavna nivoa
- Nivo 0: Sloj apstrakcije hardvera (HAL) i BSP drajveri.
- Nivo 1: Aplikacije, biblioteke i komponente zasnovane na protokolu.
Često postavljana pitanja (FAQ)
P: Koje su glavne karakteristike softverskog paketa STM32CubeWL3?
O: Glavne karakteristike uključuju nisko-slojne i HAL API-je, komponente međuvera kao što su SigfoxTM, FatFS, FreeRTOSTM kernel, aplikacije i demonstracije.
Uvod
STM32Cube je originalna inicijativa STMicroelectronics za značajno poboljšanje produktivnosti dizajnera smanjenjem truda, vremena i troškova razvoja. STM32Cube pokriva čitav STM32 portfolio.
STM32Cube uključuje:
- Skup alata za razvoj softvera prilagođenih korisniku koji pokrivaju razvoj projekta od zamisli do realizacije, među kojima su:
- STM32CubeMX, grafički softverski alat za konfiguraciju koji omogućava automatsko generiranje C koda za inicijalizaciju pomoću grafičkih čarobnjaka
- STM32CubeIDE, sve-u-jednom razvojni alat s perifernom konfiguracijom, generiranjem koda, kompilacijom koda i funkcijama za otklanjanje grešaka
- STM32CubeCLT, sve-u-jednom skup alata za razvoj naredbenog retka sa kompilacijom koda, programiranjem ploče i funkcijama za otklanjanje grešaka
- STM32CubeProgrammer (STM32CubeProg), alat za programiranje dostupan u grafičkim verzijama i verzijama sa komandne linije
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), moćni alati za praćenje za fino podešavanje ponašanja i performansi STM32 aplikacija u realnom vremenu
- STM32Cube MCU i MPU paketi, sveobuhvatne platforme ugrađenog softvera specifične za svaku seriju mikrokontrolera i mikroprocesora (kao što je STM32CubeWL3 za liniju proizvoda STM32WL3x), koje uključuju:
- STM32Cube hardverski apstrakcijski sloj (HAL), osiguravajući maksimalnu prenosivost kroz STM32 portfolio
- STM32Cube API-ji niskog sloja, koji osiguravaju najbolje performanse i otiske uz visok stepen korisničke kontrole nad] hardverom
- Konzistentan skup međuverskih komponenti kao što su FreeRTOS™ kernel, FatFS i Sigfox™
- Svi ugrađeni softverski uslužni programi s punim setovima perifernih i aplikativnih examples
- STM32Cube paketi proširenja, koji sadrže ugrađene softverske komponente koje dopunjuju funkcionalnost STM32Cube MCU i MPU paketa sa:
-
- Proširenja međuvera i aplikativni slojevi
- Exampleže rade na nekim specifičnim razvojnim pločama STMicroelectronics
Ovaj korisnički priručnik opisuje kako započeti s STM32CubeWL3 MCU paketom.
Poglavlje 2 opisuje glavne karakteristike STM32CubeWL3, a Odjeljak 3 pružaview njegove arhitekture i strukture MCU paketa.
Opće informacije
STM32CubeWL3 pokreće demonstracijske aplikacije ispod GHz, uključujući Sigfox™ binarne datoteke, na mikrokontrolerima linije proizvoda STM32WL3x baziranim na Arm® Cortex®‑M0+ procesoru.
STM32WL3x mikrokontroleri ugrađuju STMicroelectronics-ovu najmoderniju RF radio periferiju usklađenu sa sub-GHz, optimiziranu za ultra-nisku potrošnju energije i odlične radio performanse, za neusporedivi vijek trajanja baterije.
Napomena: Arm je registrovani zaštitni znak Arm Limited (ili njegovih podružnica) u SAD-u i/ili drugdje.
STM32CubeWL3 glavne karakteristike
- STM32CubeWL3 MCU paket radi na STM32 32-bitnim mikrokontrolerima baziranim na Arm® Cortex®‑M0+ procesoru. On okuplja, u jednom paketu, sve generičke ugrađene softverske komponente potrebne za razvoj aplikacije za mikrokontrolere STM32WL3x linije proizvoda.
- Paket uključuje API-je niskog sloja (LL) i sloja apstrakcije hardvera (HAL) koji pokrivaju hardver mikrokontrolera, zajedno sa opsežnim skupom exampleže rade na STMicroelectronics pločama. HAL i LL API-ji su dostupni u BSD licenci otvorenog koda radi praktičnosti korisnika. Takođe uključuje Sigfox™, FatFS i FreeRTOS™ međuverske komponente kernela.
- STM32CubeWL3 MCU paket takođe pruža nekoliko aplikacija i demonstracija implementirajući sve njegove komponente međuverskog softvera.
- Izgled komponente STM32CubeWL3 MCU paketa je ilustrovan na slici 1.
Slika 1. Komponente STM32CubeWL3 MCU paketa
STM32CubeWL3 arhitektura je završenaview
Rješenje STM32CubeWL3 MCU paketa izgrađeno je oko tri nezavisna nivoa koji lako stupaju u interakciju kao što je opisano na slici 2. Nivo 0
Ovaj nivo je podeljen na tri podsloja:
- Paket podrške za ploče (BSP).
- Sloj hardverske apstrakcije (HAL):
- HAL periferni drajveri
- Drajveri niskog sloja
- Osnovna upotreba periferije npramples.
Paket podrške za ploču (BSP)
Ovaj sloj nudi skup API-ja u odnosu na hardverske komponente u hardverskim pločama (kao što su LED diode, dugmad i COM drajveri). Sastoji se iz dva dela:
- komponenta:
Ovo je drajver u odnosu na eksterni uređaj na ploči, a ne na STM32. Upravljački program komponente pruža specifične API-je vanjskim komponentama BSP drajvera i može biti prenosiv na bilo koju drugu ploču. - BSP vozač:
Omogućava povezivanje drajvera komponenti sa određenom pločom i pruža skup API-ja prilagođenih korisniku. Pravilo imenovanja API-ja je BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP je baziran na modularnoj arhitekturi koja omogućava lako prenošenje na bilo koji hardver samo implementacijom rutina niskog nivoa.
Hardverski apstrakcijski sloj (HAL) i niski sloj (LL)
STM32CubeWL3 HAL i LL su komplementarni i pokrivaju širok spektar zahtjeva primjene:
- HAL drajveri nude visoko prenosive API-je koji su orijentisani ka funkcijama. Oni skrivaju MCU i perifernu složenost krajnjem korisniku.
HAL drajveri obezbeđuju generičke multi-instance orijentisane API-je, koji pojednostavljuju implementaciju korisničke aplikacije obezbeđujući procese spremne za upotrebu. Za nprampZa komunikacijske periferije (I2C, UART i druge), pruža API-je koji omogućavaju inicijalizaciju i konfiguraciju periferije, upravljanje prijenosom podataka na osnovu prozivanja, prekidanja ili DMA procesa i rukovanje komunikacijskim greškama koje mogu nastati tokom komunikacije. API-ji HAL drajvera su podijeljeni u dvije kategorije:
- Generički API-ji, koji pružaju zajedničke i generičke funkcije svim mikrokontrolerima serije STM32.
- API-ji proširenja, koji pružaju specifične i prilagođene funkcije za određenu porodicu ili određeni broj dijela.
- API-ji niskog sloja pružaju API-je niskog nivoa na nivou registra, sa boljom optimizacijom, ali manje prenosivosti. Oni zahtijevaju duboko poznavanje MCU i perifernih specifikacija.
LL drajveri su dizajnirani da ponude brzi lagani sloj orijentisan na stručnjake koji je bliži hardveru od HAL-a. Za razliku od HAL-a, LL API-ji nisu obezbeđeni za periferne uređaje gde optimizovani pristup nije ključna karakteristika, ili za one koji zahtevaju tešku softversku konfiguraciju ili složeni stek višeg nivoa.
Funkcija drajvera LL:
- Skup funkcija za inicijalizaciju perifernih glavnih karakteristika prema parametrima navedenim u strukturama podataka.
- Skup funkcija za popunjavanje inicijalizacijskih struktura podataka s vrijednostima resetovanja koje odgovaraju svakom polju.
- Funkcija za deinicijalizaciju periferije (periferijski registri vraćeni na njihove zadane vrijednosti).
- Skup inline funkcija za direktan i atomski pristup registrima.
- Potpuna nezavisnost od HAL-a i mogućnost korištenja u samostalnom načinu rada (bez HAL drajvera).
- Potpuna pokrivenost podržanih perifernih funkcija.
Osnovna upotreba periferije npramples
Ovaj sloj obuhvata exampdatoteke izgrađene preko STM32 perifernih uređaja koristeći samo HAL i BSP resurse.
Demonstracija examplesovi su također dostupni za prikaz složenijih nprample scenarije sa specifičnim periferijama, kao što su MRSUBG i LPAWUR.
Nivo 1
Ovaj nivo je podeljen na dva podsloja:
- Middleware komponente
- Exampdatoteke zasnovane na komponentama međuvera
Middleware komponente
Međuover je skup biblioteka koje pokrivaju FreeRTOS™ kernel, FatFS i Sigfox™ biblioteku protokola. Horizontalna interakcija između komponenti ovog sloja se vrši pozivanjem istaknutih API-ja.
Vertikalna interakcija sa drajverima niskog sloja se vrši kroz specifične povratne pozive i statičke makroe implementirane u interfejs poziva sistema biblioteke.
Glavne karakteristike svake komponente srednjeg softvera su sljedeće:
- FreeRTOS™ kernel: implementira operativni sistem u realnom vremenu (RTOS), dizajniran za ugrađene sisteme.
- Sigfox™: implementira biblioteku protokola Sigfox™ usklađenu sa mrežom protokola Sigfox™ i uključuje biblioteku RF test protokola za testiranje u odnosu na RF Sigfox™ alate.
- FatFS: implementira generički FAT file sistemski modul.
Exampdatoteke zasnovane na komponentama međuvera
Svaka komponenta srednjeg softvera dolazi sa jednim ili više examples, koji se naziva i aplikacijama, koji pokazuje kako se koristi. Integracija prampDostupne su i datoteke koje koriste nekoliko komponenti međuverskog softvera.
STM32CubeWL3 paket firmvera je završenview
Podržani STM32WL3x uređaji i hardver
STM32Cube nudi visoko prenosivi sloj apstrakcije hardvera (HAL) izgrađen oko generičke arhitekture. Omogućava princip slojeva nadograđivanja, kao što je korištenje međuverskog sloja za implementaciju njihovih funkcija bez detaljnog saznanja koji se MCU koristi. Ovo poboljšava ponovnu upotrebu koda biblioteke i osigurava laku prenosivost na druge uređaje.
- Pored toga, sa svojom slojevitom arhitekturom, STM32CubeWL3 nudi punu podršku za svu liniju proizvoda STM32WL3x.
- Korisnik mora samo definirati pravi makro u stm32wl3x.h.
Tabela 1 prikazuje makro koji treba definirati ovisno o korištenom uređaju linije proizvoda STM32WL3x. Ovaj makro također mora biti definiran u pretprocesoru kompajlera.
Tabela 1. Makroi za liniju proizvoda STM32WL3x
Makro definiran u stm32wl3x.h | STM32WL3x uređaji iz linije proizvoda |
stm32wl33 | STM32WL33xx mikrokontroleri |
STM32CubeWL3 ima bogat skup exampdatoteke i aplikacije na svim nivoima, što olakšava razumijevanje i korištenje bilo kojeg HAL drajvera ili komponenti međuvera. Ove examprade na STMicroelectronics pločama navedenim u Tabeli 2.
Board | Uređaji koji podržavaju STM32WL3x ploču |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
STM32CubeWL3 MCU paket može raditi na bilo kojem kompatibilnom hardveru. Korisnici jednostavno ažuriraju BSP drajvere kako bi prenijeli dati exampdatoteke na njihovim pločama, ako imaju iste hardverske karakteristike (kao što su LED diode ili dugmad).
Firmware paket je gotovview
Rešenje STM32CubeWL3 MCU paketa je obezbeđeno u jednom zip paketu koji ima strukturu prikazanu na slici 3.
Slika 3. Struktura paketa firmvera STM32CubeWL3
Oprez:
Korisnik ne smije mijenjati komponente files. Korisnik može samo uređivati izvore \Projects.
Za svaku ploču, set examples ima unapred konfigurisane projekte za EWARM, MDK-ARM i STM32CubeIDE lance alata.
Slika 4 prikazuje strukturu projekta za NUCLEO-WL33CCx ploče.
Bivšiampdatoteke su klasifikovane u zavisnosti od nivoa STM32CubeWL3 na koji se odnose. Nazivaju se na sljedeći način:
- Nivo 0 pramplesovi se zovu Examples, pramples_LL, i pramples_MIX. Oni koriste HAL drajvere, LL drajvere i mešavinu HAL i LL drajvera bez ikakve komponente međuverskog softvera. Demonstracija exampLes je takođe dostupan.
- Nivo 1 prampdatoteke se zovu aplikacije. Oni pružaju tipične slučajeve upotrebe svake komponente međuopreme.
Bilo koja aplikacija firmvera za datu ploču može se brzo izgraditi korištenjem predloških projekata dostupnih u direktorijima Templates i Templates_LL.
Examples, pramples_LL, i pramples_MIX imaju istu strukturu:
- \Inc folder koji sadrži sva zaglavlja files.
- \Src folder koji sadrži izvorni kod.
- \EWARM, \MDK-ARM i \STM32CubeIDE folderi koji sadrže unaprijed konfigurirani projekat za svaki lanac alata.
- readme.md i readme.html koji opisuju exampponašanje i potrebno okruženje da bi to funkcioniralo.
Početak rada sa STM32CubeWL3
Trčanje prvog bivšegample
Ovaj odjeljak objašnjava kako je jednostavno pokrenuti prvi example u okviru STM32CubeWL3. Kao ilustraciju koristi generisanje jednostavnog LED prekidača koji radi na ploči NUCLEO-WL33CC1:
- Preuzmite STM32CubeWL3 MCU paket.
- Raspakujte ga ili pokrenite instalacijski program ako postoji, u direktorij po vašem izboru.
- Pazite da ne mijenjate strukturu paketa prikazanu na slici 3. Struktura paketa firmvera STM32CubeWL3. Imajte na umu da se također preporučuje kopiranje paketa na lokaciju blizu korijenskog volumena (što znači C:\ST ili G:\Tests), jer neki IDE-ovi nailaze na probleme kada je put predugačak.
Kako pokrenuti HAL example
Prije učitavanja i pokretanja example, toplo se preporučuje da pročitate example readme file za bilo koju konfiguraciju.
- Potražite na \Projects\NUCLEO-WL33CC\Examples.
- Otvorite fascikle \GPIO, zatim \GPIO_EXTI.
- Otvorite projekat sa željenim lancem alata. Brzi krajview o tome kako otvoriti, izgraditi i pokrenuti example sa podržanim lancima alata dat je u nastavku.
- Rebuild all files i učitajte sliku u ciljnu memoriju.
- Pokreni example. Za više detalja, pogledajte prample readme file.
Da biste otvorili, napravili i pokrenuli exampsa svakim od podržanih lanaca alata, slijedite dolje navedene korake:
- EWARM:
- Pod Examples folder, otvorite podfolder \EWARM.
- Pokrenite radni prostor Project.eww (ime radnog prostora može se promijeniti iz jednog example do drugog).
- Rebuild all files: [Projekat]>[Ponovo izgradi sve].
- Učitajte sliku projekta: [Projekt]>[Debug].
- Pokrenite program: [Debug]>[Go (F5)].
- MDK-ARM:
- Pod Examples folder, otvorite podfolder \MDK-ARM.
- Otvorite radni prostor Project.uvproj (ime radnog prostora može se promijeniti iz jednog example do drugog).
- Rebuild all files: [Projekat]>[Ponovo izgradi sve ciljeve files].
- Učitajte sliku projekta: [Debug]>[Start/Stop Debug Session].
- Pokrenite program: [Debug]>[Run (F5)].
- STM32CubeIDE:
- Otvorite lanac alata STM32CubeIDE.
- Kliknite na [File]>[Switch Workspace]>[Other] i pretražite STM32CubeIDE direktorij radnog prostora.
- Kliknite na [File]>[Uvoz], odaberite [Općenito]>[Postojeći projekti u radni prostor], a zatim kliknite [Dalje].
- Dođite do direktorija radnog prostora STM32CubeIDE i odaberite projekt.
- Ponovo izgradite sav projekat files: Odaberite projekat u prozoru Project Explorer, a zatim kliknite na
[Projekt]>[Izgradnja projekta] meni. - Pokrenite program: [Run]>[Debug (F11)].
Razvoj prilagođene aplikacije
Korištenje STM32CubeMX za razvoj ili ažuriranje aplikacije
U STM32Cube MCU paketu, gotovo svi projekti exampdatoteke se generišu pomoću alata STM32CubeMX za inicijalizaciju sistema, perifernih uređaja i međuvera.
Direktno korištenje postojećeg projekta nprample iz STM32CubeMX alata zahtijeva STM32CubeMX 6.12.0 ili noviju:
- Nakon instalacije STM32CubeMX, otvorite i po potrebi ažurirajte predloženi projekat.
Najjednostavniji način za otvaranje postojećeg projekta je dvostruki klik na *.ioc file tako da STM32CubeMX automatski otvara projekat i njegov izvor files. STM32CubeMX generiše inicijalizacijski izvorni kod takvih projekata. - Glavni izvorni kod aplikacije je sadržan u komentarima “KORISNIČKI KOD POČINJE” i “KORISNIČKI KOD KRAJ”. Ako su izbor i postavke periferije promijenjene, STM32CubeMX ažurira dio inicijalizacijskog koda uz očuvanje izvornog koda glavne aplikacije.
Da biste razvili prilagođeni projekat sa STM32CubeMX, slijedite korak po korak proces:
- Konfigurirajte sav potreban ugrađeni softver koristeći rješavač pinout-konflikta, pomoćnik za podešavanje stabla sata, kalkulator potrošnje energije i uslužni program koji izvodi MCU perifernu konfiguraciju (kao što je GPIO ili USART).
- Generirajte inicijalizacijski C kod na osnovu odabrane konfiguracije. Ovaj kod je spreman za upotrebu u nekoliko razvojnih okruženja. Korisnički kod se čuva pri sljedećem generiranju koda.
Za više informacija o STM32CubeMX, pogledajte korisnički priručnik STM32CubeMX za STM32 konfiguraciju i generiranje C koda za inicijalizaciju (UM1718).
Aplikacije za vozače
HAL aplikacija
Ovaj odjeljak opisuje korake potrebne za kreiranje prilagođene HAL aplikacije pomoću STM32CubeWL3:
- Kreirajte projekat
Da kreirate novi projekat, počnite ili od predloška projekta koji se nalazi za svaku ploču pod \Projects\< STM32xxx_yyy>\Templates ili od bilo kojeg dostupnog projekta pod \Projects\ \Prampl es ili \Projekti\ \Aplikacije (gdje odnosi se na naziv odbora). Projekt Template pruža praznu funkciju glavne petlje. Međutim, to je dobra polazna tačka za razumijevanje postavki projekta STM32CubeWL32. Šablon ima sljedeće karakteristike:- Sadrži HAL izvorni kod, CMSIS i BSP drajvere, koji su minimalni skup komponenti potrebnih za razvoj koda na datoj ploči.
- Sadrži uključene putanje za sve komponente firmvera.
- Definiše podržane STM32WL3x uređaje iz linije proizvoda, omogućavajući CMSIS i HAL drajvere da budu ispravno konfigurisani.
- Pruža korisnika koji je spreman za upotrebu fileje unaprijed konfigurisan kao što je prikazano ispod:
- HAL je inicijaliziran sa zadanom vremenskom bazom pomoću Arm® jezgre SysTicka.
- SysTick ISR implementiran za HAL_Delay() svrhu.
Napomena: Prilikom kopiranja postojećeg projekta na drugu lokaciju, provjerite jesu li sve uključene staze ažurirane.
- Konfigurišite komponente firmvera
HAL i komponente međuverskog softvera nude skup opcija konfiguracije za vrijeme izgradnje koristeći makronaredbe #define deklarirane u zaglavlju file. Konfiguracija šablona file je obezbeđen unutar svake komponente, koja se mora kopirati u fasciklu projekta (obično konfiguraciju file se zove xxx_conf_template.h, fragment _template treba ukloniti kada ga kopirate u fasciklu projekta). Konfiguracija file pruža dovoljno informacija za razumijevanje utjecaja svake opcije konfiguracije. Detaljnije informacije dostupne su u dokumentaciji za svaku komponentu. - Pokrenite HAL biblioteku
Nakon skoka na glavni program, kod aplikacije mora pozvati HAL_Init() API da inicijalizira HAL biblioteku, koja izvršava sljedeće zadatke:- Konfiguracija prethodnog preuzimanja fleš memorije i SysTick prioriteta prekida (preko makronaredbi definisanih u stm3 2wl3x_hal_conf.h).
- Konfiguracija SysTicka za generiranje prekida svake milisekunde na SysTick prioritetu prekida TICK_INT_PRIO definiranom u stm32wl3x_hal_conf.h.
- Postavljanje prioriteta NVIC grupe na 0.
- Poziv funkcije povratnog poziva HAL_MspInit() definirane u korisniku stm32wl3x_hal_msp.c file za izvođenje globalnih hardverskih inicijalizacija niskog nivoa.
- Konfigurišite sistemski sat
Konfiguracija sistemskog sata se vrši pozivanjem dva API-ja opisana u nastavku:- HAL_RCC_OscConfig(): ovaj API konfiguriše interne i eksterne oscilatore. Korisnik bira da konfiguriše jedan ili sve oscilatore.
- HAL_RCC_ClockConfig(): ovaj API konfiguriše izvor sistemskog takta, kašnjenje fleš memorije i AHB i APB predskalere.
- Inicijalizirajte periferiju
- Prvo napišite funkciju inicijalizacije periferije. Postupite na sljedeći način:
- Omogućite periferni sat.
- Konfigurirajte periferne GPIO.
- Konfigurišite DMA kanal i omogućite DMA prekid (ako je potrebno).
- Omogućite periferni prekid (ako je potrebno).
- Uredite stm32xxx_it.c da pozovete potrebne rukovaoce prekida (periferijski i DMA), ako je potrebno.
- Napišite proces potpune funkcije povratnog poziva ako je predviđeno da se koristi periferni prekid ili DMA.
- U korisniku main.c file, inicijalizirajte strukturu periferne ručke, a zatim pozovite funkciju inicijalizacije periferije da inicijalizira periferiju.
- Razviti aplikaciju
Kod ovog stage, sistem je spreman i razvoj koda korisničke aplikacije može početi.
HAL pruža intuitivne i spremne za korištenje API-je za konfiguraciju periferije. Podržava prozivanje, prekide i DMA model programiranja, kako bi zadovoljio sve zahtjeve aplikacije. Za više detalja o tome kako koristiti svaki periferni uređaj, pogledajte bogati exampset koji se nalazi u STM32CubeWL3 MCU paketu.
Oprez:
U podrazumevanoj HAL implementaciji, SysTick tajmer se koristi kao vremenska baza: generiše prekide u redovnim vremenskim intervalima. Ako je HAL_Delay() pozvan iz perifernog ISR procesa, uvjerite se da SysTick prekid ima veći prioritet (numerički niži) od perifernog prekida. Inače, proces ISR pozivatelja je
blokiran. Funkcije koje utječu na konfiguraciju vremenske baze deklarirane su kao __slabe kako bi se omogućilo nadjačavanje u slučaju drugih implementacija u korisniku file (koristeći tajmer opće namjene, nprample, ili drugi izvor vremena).
Za više detalja, pogledajte HAL_TimeBase example.
LL aplikacija
Ovaj odjeljak opisuje korake potrebne za kreiranje prilagođene LL aplikacije pomoću STM32CubeWL3.
- Kreirajte projekat
Da kreirate novi projekat, ili počnite od projekta Templates_LL koji je obezbeđen za svaku ploču pod \Projekti\ \Templates_LL ili iz bilo kojeg dostupnog projekta pod \Projekti\ \E xamples_LL ( odnosi se na naziv ploče, kao što je NUCLEO-WL32CC33).
Predložak projekta pruža praznu funkciju glavne petlje, što je dobra polazna tačka za razumijevanje projektnih postavki za STM32CubeWL3. Glavne karakteristike šablona su sljedeće:- Sadrži izvorne kodove LL i CMSIS drajvera, koji su minimalni skup komponenti potrebnih za razvoj koda na datoj ploči.
- Sadrži uključene putanje za sve potrebne komponente firmvera.
- On bira podržani STM32WL3x uređaj iz linije proizvoda i omogućava ispravnu konfiguraciju CMSIS i LL drajvera.
- Pruža korisniku spremnom za korištenje filekoji su unapred konfigurisani na sledeći način:
- main.h: LED i sloj apstrakcije definicije USER_BUTTON.
- main.c: Konfiguracija sistemskog sata za maksimalnu frekvenciju.
- Port LL example:
- Kopirajte/zalijepite folder Templates_LL – da zadržite početni izvor – ili direktno ažurirajte postojeći Templa tes_LL projekat.
- Zatim, prijenos se uglavnom sastoji u zamjeni Templates_LL files od strane Examples_LL ciljani projekat.
- Zadržite sve dijelove specifične za ploču. Radi jasnoće, specifični dijelovi ploče su označeni sa specifičnim tags:
Dakle, glavni koraci prenosa su sljedeći:
- Zamijenite stm32wl3x_it.h file.
- Zamijenite stm32wl3x_it.c file.
- Zamijenite main.h file i ažurirajte ga: Zadržite LED i korisničku tipku definiciju LL šablona pod SPECIFIČNA KONFIGURACIJA BOARD tags.
- Zamijenite main.c file i ažurirajte ga:
- Zadržite konfiguraciju sata funkcije predloška SystemClock_Config() LL pod SPECIFIČNA KONFIGURACIJA BOARDA tags.
- Ovisno o LED definiciji, zamijenite svako pojavljivanje LDx s drugim LDy dostupnim u file main.h.
Sa ovim modifikacijama, example radi na ciljanoj ploči.
RF aplikacije, demonstracije i npramples
Različite vrste RF aplikacija, demonstracija i nprampdatoteke su dostupne u STM32CubeWL3 paketu. Oni su navedeni u dva odjeljka ispod.
Sub-GHz examplesa i demonstracija
Ove examples pokazuju glavne karakteristike MRSUBG i LPAWUR radio periferije. Ove exampDostupni su pod:
- Projekti\NUCLEO-WL33CC\Pramples\MRSUBG
- Projekti\NUCLEO-WL33CC\Pramples\LPAWUR
- Projekti\NUCLEO-WL33CC\Demonstracije\MRSUBG
- Projekti\NUCLEO-WL33CC\Demonstracije\LPAWUR
Svaki example ili demonstracija se uglavnom sastoji od dva programa nazvana Tx i Rx koji djeluju kao predajnik i prijemnik, respektivno:
- Examples/MRSUBG
- MRSUBG_802_15_4: implementacija fizičkog sloja definisanog standardom 802.15.4. Pokazuje kako da konfigurišete radio da prenosi ili prima 802.15.4 pakete.
- MRSUBG_BasicGeneric: Razmjena STM32WL3x MR_SUBG osnovnih paketa.
- MRSUBG_Chat: Jednostavna aplikacija koja pokazuje kako koristiti Tx i Rx na istom uređaju.
- MRSUBG_DatabufferHandler: prample koji pokazuje kako zamijeniti bafer podataka 0 i 1.
- MRSUBG_Sequencer AutoAck: prampfajl koji automatski prenosi i prima potvrde paketa (ACK-ove).
- MRSUBG_WMBusSTD: Razmjena WM-Bus poruka.
- WakeupRadio: Bivšiampda testiramo LPAWUR radio periferiju.
- Demonstracije/MRSUBG
- MRSUBG_RTC_Button_TX: Ovaj prample pokazuje kako postaviti SoC u režim dubokog zaustavljanja i konfigurirati MRSUBG da probudi SoC pritiskom na PB2 za slanje okvira ili nakon isteka RTC tajmera.
- MRSUBG_Sequencer_Sniff: Ovaj prample pokazuje kako podesiti MRSUBG sekvencer da radi u režimu njuškanja. Ovaj example pokazuje stranu prijemnika i zahteva drugi uređaj kao predajnik.
- MRSUBG_Timer: Aplikacija planira nekoliko instanci MRSUBG tajmera (sa automatskim ponovnim učitavanjem) sa različitim vremenskim intervalima.
- MRSUBG_WakeupRadio_Tx: Ovaj prample objašnjava kako postaviti SoC u način dubokog zaustavljanja i konfigurirati MRSUBG da probudi SoC pritiskom na PB2 za slanje okvira. Ovaj example pokazuje stranu predajnika i zahtijeva drugi uređaj kao LPAWUR prijemnik. Prijemnik example se nalazi ispod fascikle NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
- Demonstracije/LPAWUR
- LPAWUR_WakeupRadio_Rx: Ovaj prample objašnjava kako postaviti SoC u režim dubokog zaustavljanja i konfigurirati LPAWUR da probudi SoC kada okvir stigne i bude ispravno primljen. Ovaj example pokazuje stranu prijemnika i zahtijeva drugi uređaj kao predajnik. Predajnik example se nalazi u fascikli NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.
Sigfox™ aplikacija
Ove aplikacije pokazuju kako implementirati Sigfox™ scenario i koristiti dostupne Sigfox™ API-je. Dostupni su na putu projekta Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: Ova aplikacija pokazuje kako koristiti sučelje komandne linije (CLI) za slanje komandi koje koriste Sigfox™ protokol za slanje poruka i izvođenje predsertifikacijskih testova.
- Sigfox_PushButton: Ova aplikacija omogućava procjenu radio mogućnosti STM32WL33xx Sigfox™ uređaja. Pritiskom na PB1 prenosi se probni Sigfox™ okvir.
FAQ
- Kada trebam koristiti HAL umjesto LL drajvera?
HAL drajveri nude API-je visokog nivoa i funkcionalno orijentisane, sa visokim nivoom prenosivosti. Složenost proizvoda ili periferije je skrivena za krajnje korisnike.
LL drajveri nude API-je niskog nivoa registra, sa boljom optimizacijom, ali manje prenosivim. Oni zahtijevaju dubinsko poznavanje proizvoda ili IP specifikacija. - Da li se HAL i LL drajveri mogu koristiti zajedno? Ako da, koja su ograničenja?
Moguće je koristiti i HAL i LL drajvere. Koristite HAL za fazu inicijalizacije periferije, a zatim upravljajte I/O operacijama s LL drajverima.
Glavna razlika između HAL-a i LL-a je u tome što HAL drajveri zahtijevaju kreiranje i korištenje ručki za upravljanje operacijama, dok LL drajveri rade direktno na perifernim registrima. Miješanje HAL-a i LL-a je ilustrovano u pramples_MIX examples. - Kako su omogućeni API-ji za inicijalizaciju LL?
Definicija LL inicijalizacijskih API-ja i pridruženih resursa (strukture, literali i prototipovi) uvjetovana je prekidačem kompilacije USE_FULL_LL_DRIVER.
Da biste mogli koristiti API-je za inicijalizaciju LL, dodajte ovaj prekidač u pretprocesor kompajlera alata. - Postoji li neki predložak projekta za MRSUBG/LPAWUR periferiju examples?
Za kreiranje novog MRSUBG ili LPAWUR exampprojekat, ili počnite od skeletnog projekta koji se nalazi pod \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG ili \Projects\NUCLEO-WL33CC\Examples\LPAWUR, ili iz bilo kojeg dostupnog projekta u tim istim direktorijima. - Kako STM32CubeMX može generirati kod na osnovu ugrađenog softvera?
STM32CubeMX ima ugrađeno znanje o STM32 mikrokontrolerima, uključujući njihove periferije i softver, što mu omogućava da pruži grafički prikaz korisniku i generiše *.h ili *.c files na osnovu konfiguracije korisnika.
Istorija revizija
Tabela 3. Istorija revizije dokumenta
Datum | Revizija | Promjene |
29-Mar-2024 | 1 | Prvo izdanje. |
30-okt-2024 | 2 | Potpuna integracija STM32CubeWL3 in STM32Cube. Ažurirano:
Uklonjeno:
|
Dokumenti / Resursi
![]() |
ST STM32WL3x softverski paket [pdfUpute STM32WL3x softverski paket, STM32WL3x, softverski paket, paket |