Softwarový balíček STM32WL3x
Specifikace
- Název produktu: softwarový balík STM32CubeWL3
- Kompatibilita: mikrokontroléry STM32WL3x
- Hlavní vlastnosti:
- Nízkovrstvá (LL) a hardwarová abstraktní vrstva (HAL) API
- Komponenty middlewaru jádra SigfoxTM, FatFS a FreeRTOSTM
- Aplikace a ukázky
Návod k použití produktu
Začínáme
Chcete-li začít používat softwarový balíček STM32CubeWL3, postupujte takto:
- Stáhněte si softwarový balíček z oficiálního webu webmísto.
- Nainstalujte potřebné vývojové prostředí (např. STM32CubeIDE, EWARM, MDK-ARM).
- Viz exampsoubory a aplikace poskytnuté jako vodítko.
STM32CubeWL3 Architecture Overview
Softwarový balík STM32CubeWL3 je postaven na třech hlavních úrovních
- Úroveň 0: Ovladače hardwarové abstraktní vrstvy (HAL) a BSP.
- Úroveň 1: Aplikace, knihovny a komponenty založené na protokolech.
Často kladené otázky (FAQ)
Otázka: Jaké jsou hlavní vlastnosti softwarového balíčku STM32CubeWL3?
Odpověď: Mezi hlavní funkce patří nízkovrstvová a HAL API, middlewarové komponenty jako SigfoxTM, FatFS, jádro FreeRTOSTM, aplikace a ukázky.
Zavedení
STM32Cube je originální iniciativa STMicroelectronics, která výrazně zlepšuje produktivitu návrhářů snížením úsilí, času a nákladů na vývoj. STM32Cube pokrývá celé portfolio STM32.
STM32Cube obsahuje:
- Sada uživatelsky přívětivých nástrojů pro vývoj softwaru pro pokrytí vývoje projektu od koncepce po realizaci, mezi které patří:
- STM32CubeMX, grafický softwarový konfigurační nástroj, který umožňuje automatické generování inicializačního kódu C pomocí grafických průvodců
- STM32CubeIDE, vývojový nástroj vše v jednom s konfigurací periferií, generováním kódu, kompilací kódu a funkcemi ladění
- STM32CubeCLT, sada nástrojů pro vývoj příkazového řádku vše v jednom s kompilací kódu, programováním desek a funkcemi ladění
- STM32CubeProgrammer (STM32CubeProg), programovací nástroj dostupný v grafické verzi a verzi pro příkazový řádek
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), výkonné monitorovací nástroje pro jemné vyladění chování a výkonu aplikací STM32 v reálném čase
- STM32Cube MCU a MPU Packages, komplexní vestavěné softwarové platformy specifické pro každou řadu mikrokontrolérů a mikroprocesorů (jako je STM32CubeWL3 pro produktovou řadu STM32WL3x), které zahrnují:
- STM32Cube hardware abstraction layer (HAL), zajišťující maximální přenositelnost v rámci portfolia STM32
- Nízkovrstvá rozhraní API STM32Cube zajišťující nejlepší výkon a nároky s vysokým stupněm uživatelské kontroly nad] hardwarem
- Konzistentní sada middlewarových komponent, jako je jádro FreeRTOS™, FatFS a Sigfox™
- Všechny vestavěné softwarové nástroje s úplnými sadami periferních a aplikačních examples
- Rozšiřující balíčky STM32Cube, které obsahují vestavěné softwarové komponenty, které doplňují funkce balíčků STM32Cube MCU a MPU o:
-
- Middleware rozšíření a aplikační vrstvy
- Exampběží na některých specifických vývojových deskách STMicroelectronics
Tato uživatelská příručka popisuje, jak začít s balíčkem MCU STM32CubeWL3.
Sekce 2 popisuje hlavní vlastnosti STM32CubeWL3 a sekce 3 poskytuje přesahview jeho architektury a struktury MCU Package.
Obecné informace
STM32CubeWL3 provozuje demonstrační aplikace pod pásmem GHz, včetně binárních souborů Sigfox™, na mikrokontrolérech produktové řady STM32WL3x založených na procesoru Arm® Cortex®-M0+.
Mikrokontroléry STM32WL3x obsahují nejmodernější rádiové rádiové periferie STMicroelectronics vyhovující sub-GHz, optimalizované pro extrémně nízkou spotřebu energie a vynikající rádiový výkon pro bezkonkurenční životnost baterie.
Poznámka: Arm je registrovaná ochranná známka společnosti Arm Limited (nebo jejích dceřiných společností) v USA a/nebo jinde.
Hlavní vlastnosti STM32CubeWL3
- Balíček MCU STM32CubeWL3 běží na 32bitových mikrokontrolérech STM32 založených na procesoru Arm® Cortex®-M0+. Shromažďuje v jediném balíčku všechny generické vestavěné softwarové komponenty potřebné k vývoji aplikace pro mikrokontroléry produktové řady STM32WL3x.
- Balíček obsahuje nízkovrstvová (LL) a hardwarová abstraktní vrstva (HAL) API, která pokrývají hardware mikrokontroléru, spolu s rozsáhlou sadou exampběžící na deskách STMicroelectronics. Rozhraní API HAL a LL jsou pro pohodlí uživatele k dispozici v licenci BSD s otevřeným zdrojovým kódem. Zahrnuje také komponenty jádrového middlewaru Sigfox™, FatFS a FreeRTOS™.
- STM32CubeWL3 MCU Package také poskytuje několik aplikací a ukázek implementujících všechny jeho middlewarové komponenty.
- Rozložení komponent STM32CubeWL3 MCU Package je znázorněno na obrázku 1.
Obrázek 1. Součásti balíčku STM32CubeWL3 MCU Package
Konec architektury STM32CubeWL3view
Řešení STM32CubeWL3 MCU Package je postaveno na třech nezávislých úrovních, které se snadno ovlivňují, jak je popsáno na obrázku 2. Úroveň 0
Tato úroveň je rozdělena do tří podvrstev:
- Balíček podpory desky (BSP).
- Vrstva abstrakce hardwaru (HAL):
- Ovladače periferií HAL
- Nízkovrstvé ovladače
- Základní použití periferií napřamples.
Balíček podpory desky (BSP)
Tato vrstva nabízí sadu rozhraní API vzhledem k hardwarovým komponentám na hardwarových deskách (jako jsou LED diody, tlačítka a ovladače COM). Skládá se ze dvou částí:
- Komponent:
Toto je ovladač vzhledem k externímu zařízení na desce a ne k STM32. Ovladač komponenty poskytuje externím komponentám ovladače BSP specifická rozhraní API a mohl by být přenosný na jakékoli jiné desce. - Ovladač BSP:
Umožňuje propojení ovladačů součástí ke konkrétní desce a poskytuje sadu uživatelsky přívětivých rozhraní API. Pravidlo pro pojmenování API je BSP_FUNCT_Action().
Exampsoubor: BSP_LED_Init(), BSP_LED_On()
BSP je založeno na modulární architektuře, která umožňuje snadné portování na jakýkoli hardware pouhou implementací nízkoúrovňových rutin.
Hardwarová abstraktní vrstva (HAL) a nízká vrstva (LL)
STM32CubeWL3 HAL a LL se vzájemně doplňují a pokrývají širokou škálu aplikačních požadavků:
- Ovladače HAL nabízejí vysoce přenosná rozhraní API orientovaná na funkce na vysoké úrovni. Koncovému uživateli skrývají složitost MCU a periferií.
Ovladače HAL poskytují obecná rozhraní API orientovaná na více instancí, která zjednodušují implementaci uživatelských aplikací tím, že poskytují procesy připravené k použití. NapřampPro komunikační periferie (I2C, UART a další) poskytuje rozhraní API umožňující inicializaci a konfiguraci periferie, správu přenosu dat na základě dotazování, přerušení nebo procesu DMA a řešení komunikačních chyb, které mohou nastat během komunikace. Rozhraní API ovladače HAL jsou rozdělena do dvou kategorií:
- Obecná API, která poskytují společné a obecné funkce všem mikrokontrolérům řady STM32.
- Rozhraní API rozšíření, která poskytují specifické a přizpůsobené funkce pro konkrétní rodinu nebo konkrétní číslo dílu.
- Nízkovrstvá API poskytují nízkoúrovňová API na úrovni registru s lepší optimalizací, ale menší přenositelností. Vyžadují hluboké znalosti MCU a specifikací periferií.
Ovladače LL jsou navrženy tak, aby nabízely rychlou lehkou expertně orientovanou vrstvu, která je blíže hardwaru než HAL. Na rozdíl od HAL nejsou LL API poskytována pro periferní zařízení, kde optimalizovaný přístup není klíčovou funkcí, nebo pro ty, které vyžadují náročnou softwarovou konfiguraci nebo komplexní zásobník vyšší úrovně.
Funkce ovladačů LL:
- Sada funkcí pro inicializaci hlavních funkcí periferie podle parametrů specifikovaných v datových strukturách.
- Sada funkcí pro vyplnění inicializačních datových struktur resetovanými hodnotami odpovídajícími každému poli.
- Funkce pro deinicializaci periferií (obnovení periferních registrů na výchozí hodnoty).
- Sada inline funkcí pro přímý a atomický přístup k registru.
- Plná nezávislost na HAL a možnost použití v samostatném režimu (bez ovladačů HAL).
- Plné pokrytí podporovaných periferních funkcí.
Základní použití periferií napřamples
Tato vrstva uzavírá exampsoubory postavené na periferních zařízeních STM32 využívající pouze prostředky HAL a BSP.
Demonstrace exampsoubory jsou také k dispozici pro zobrazení složitějších příkladůample scénáře se specifickými periferiemi, jako jsou MRSUBG a LPAWUR.
Úroveň 1
Tato úroveň je rozdělena na dvě podvrstvy:
- Middlewarové komponenty
- Exampsoubory založené na komponentách middlewaru
Middlewarové komponenty
Middleware je sada knihoven pokrývajících jádro FreeRTOS™, FatFS a knihovnu protokolů Sigfox™. Horizontální interakce mezi komponentami této vrstvy se provádí voláním doporučených rozhraní API.
Vertikální interakce s ovladači nízké vrstvy se provádí prostřednictvím specifických zpětných volání a statických maker implementovaných v rozhraní volání systému knihovny.
Hlavní vlastnosti každé komponenty middlewaru jsou následující:
- Jádro FreeRTOS™: implementuje operační systém v reálném čase (RTOS), určený pro vestavěné systémy.
- Sigfox™: implementuje knihovnu protokolů Sigfox™ kompatibilní s protokolovou sítí Sigfox™ a zahrnuje knihovnu testovacích RF protokolů pro testování s nástroji RF Sigfox™.
- FatFS: implementuje obecný FAT file systémový modul.
Exampsoubory založené na komponentách middlewaru
Každá komponenta middlewaru je dodávána s jedním nebo více exampsoubory, nazývané také aplikace, ukazující, jak je používat. Integrace napřampK dispozici jsou také soubory, které používají několik komponent middlewaru.
Balíček firmwaru STM32CubeWL3 skončilview
Podporovaná zařízení a hardware STM32WL3x
STM32Cube nabízí vysoce přenosnou hardwarovou abstraktní vrstvu (HAL) postavenou na obecné architektuře. Umožňuje princip stavěcích vrstev, jako je použití middlewarové vrstvy k implementaci jejich funkcí, aniž by do hloubky věděli, jaký MCU se používá. To zlepšuje znovupoužitelnost kódu knihovny a zajišťuje snadnou přenositelnost na jiná zařízení.
- STM32CubeWL3 navíc díky své vrstvené architektuře nabízí plnou podporu pro celou produktovou řadu STM32WL3x.
- Uživatel musí pouze definovat správné makro v stm32wl3x.h.
Tabulka 1 ukazuje makro, které je třeba definovat v závislosti na použitém zařízení produktové řady STM32WL3x. Toto makro musí být také definováno v preprocesoru kompilátoru.
Tabulka 1. Makra pro produktovou řadu STM32WL3x
Makro definované v stm32wl3x.h | Zařízení produktové řady STM32WL3x |
stm32wl33 | Mikrokontroléry STM32WL33xx |
STM32CubeWL3 obsahuje bohatou sadu exampsouborů a aplikací na všech úrovních, takže je snadné porozumět a používat jakýkoli ovladač HAL nebo komponenty middlewaru. Tyto exampsoubory běží na deskách STMicroelectronics uvedených v tabulce 2.
Rada | Zařízení podporovaná deskou STM32WL3x |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
STM32CubeWL3 MCU Package může běžet na jakémkoli kompatibilním hardwaru. Uživatelé jednoduše aktualizují ovladače BSP, aby přenesly poskytnuté exampsoubory na jejich deskách, pokud mají stejné hardwarové funkce (jako jsou LED nebo tlačítka).
Balíček firmwaru skončilview
Řešení STM32CubeWL3 MCU Package je poskytováno v jediném zipovém balíčku se strukturou znázorněnou na obrázku 3.
Obrázek 3. Struktura balíčku firmwaru STM32CubeWL3
Pozor:
Uživatel nesmí upravovat komponenty files. Uživatel může upravovat pouze zdroje \Projects.
Pro každou desku sada examples je poskytován s předkonfigurovanými projekty pro nástrojové řetězce EWARM, MDK-ARM a STM32CubeIDE.
Obrázek 4 ukazuje strukturu projektu pro desky NUCLEO-WL33CCx.
Bývalýampsoubory jsou klasifikovány v závislosti na úrovni STM32CubeWL3, na kterou se vztahují. Jmenují se takto:
- Úroveň 0 examplesy se nazývají Přamples, Přamples_LL a Přamples_MIX. Používají ovladače HAL, ovladače LL a kombinaci ovladačů HAL a LL bez jakékoli komponenty middlewaru. Demonstrace exampk dispozici jsou také soubory.
- Úroveň 1 exampsoubory se nazývají Aplikace. Poskytují typické případy použití každé komponenty middlewaru.
Libovolnou aplikaci firmwaru pro danou desku lze rychle sestavit pomocí projektů šablon dostupných v adresářích Templ ates a Templates_LL.
Examples, Přamples_LL a Přamples_MIX mají stejnou strukturu:
- \Inc složka obsahující všechna záhlaví files.
- \Src složka obsahující zdrojový kód.
- Složky \EWARM, \MDK-ARM a \STM32CubeIDE obsahující předkonfigurovaný projekt pro každý toolchain.
- readme.md a readme.html popisující exampchování a potřebné prostředí, aby to fungovalo.
Začínáme s STM32CubeWL3
Spuštění prvního example
Tato část vysvětluje, jak jednoduché je spustit první example v rámci STM32CubeWL3. Jako ilustraci používá generaci jednoduchého přepínače LED běžícího na desce NUCLEO-WL33CC1:
- Stáhněte si balíček MCU STM32CubeWL3.
- Rozbalte jej nebo spusťte instalační program, pokud je k dispozici, do adresáře podle vašeho výběru.
- Ujistěte se, že jste neměnili strukturu balíčku zobrazenou na obrázku 3. Struktura balíčku firmwaru STM32CubeWL3. Všimněte si, že se také doporučuje zkopírovat balíček do umístění blízko kořenového svazku (což znamená C:\ST nebo G:\Tests), protože některá IDE narážejí na problémy, když je cesta příliš dlouhá.
Jak spustit HAL example
Před načtením a spuštěním example, důrazně se doporučuje přečíst si example readme file pro jakoukoli konkrétní konfiguraci.
- Přejděte na \Projects\NUCLEO-WL33CC\Examples.
- Otevřete složky \GPIO a poté \GPIO_EXTI.
- Otevřete projekt pomocí preferované sady nástrojů. Rychlý konecview o tom, jak otevřít, vytvořit a spustit example s podporovanými nástrojovými řetězci je uveden níže.
- Vše znovu postavit files a načtěte obrázek do cílové paměti.
- Spustit example. Další podrobnosti naleznete v example readme file.
Chcete-li otevřít, vytvořit a spustit examps každým z podporovaných toolchainů postupujte podle následujících kroků:
- EWARM:
- Pod Examples, otevřete podsložku \EWARM.
- Spusťte pracovní prostor Project.eww (název pracovního prostoru se může změnit z jednoho example jinému).
- Vše znovu postavit files: [Project]>[Rebuild all].
- Načtěte obraz projektu: [Project]>[Debug].
- Spusťte program: [Debug]>[Go (F5)].
- MDK-ARM:
- Pod Examples, otevřete podsložku \MDK-ARM.
- Otevřete pracovní prostor Project.uvproj (název pracovního prostoru se může změnit z jednoho example jinému).
- Vše znovu postavit files: [Project]>[Rebuild all target files].
- Načtěte obraz projektu: [Debug]>[Start/Stop Debug Session].
- Spusťte program: [Debug]>[Spustit (F5)].
- STM32CubeIDE:
- Otevřete toolchain STM32CubeIDE.
- Klikněte na [File]>[Přepnout pracovní prostor]>[Jiné] a přejděte do adresáře pracovního prostoru STM32CubeIDE.
- Klikněte na [File]>[Importovat], vyberte [Obecné]>[Existující projekty do pracovního prostoru] a poté klikněte na [Další].
- Přejděte do adresáře pracovního prostoru STM32CubeIDE a vyberte projekt.
- Obnovit celý projekt files: Vyberte projekt v okně Project Explorer a poté klikněte na
Nabídka [Projekt]>[Sestavit projekt]. - Spusťte program: [Spustit]>[Ladit (F11)].
Vývoj vlastní aplikace
Použití STM32CubeMX k vývoji nebo aktualizaci aplikace
V balíčku STM32Cube MCU Package téměř všechny projekty exampsoubory jsou generovány pomocí nástroje STM32CubeMX pro inicializaci systému, periferií a middlewaru.
Přímé použití existujícího projektu napřample z nástroje STM32CubeMX vyžaduje STM32CubeMX 6.12.0 nebo vyšší:
- Po instalaci STM32CubeMX otevřete a v případě potřeby aktualizujte navrhovaný projekt.
Nejjednodušší způsob, jak otevřít existující projekt, je poklepat na *.ioc file takže STM32CubeMX automaticky otevře projekt a jeho zdroj files. STM32CubeMX generuje inicializační zdrojový kód takových projektů. - Hlavní zdrojový kód aplikace je obsažen v komentářích „USER CODE BEGIN“ a „USER CODE END“. Pokud se změní výběr a nastavení periferií, STM32CubeMX aktualizuje inicializační část kódu a zachová hlavní zdrojový kód aplikace.
Chcete-li vytvořit vlastní projekt s STM32CubeMX, postupujte krok za krokem:
- Nakonfigurujte veškerý požadovaný vestavěný software pomocí řešení konfliktů pinoutů, pomocníka pro nastavení hodinového stromu, kalkulátoru spotřeby energie a nástroje provádějícího konfiguraci periferií MCU (jako je GPIO nebo USART).
- Vygenerujte inicializační C kód na základě zvolené konfigurace. Tento kód je připraven k použití v několika vývojových prostředích. Uživatelský kód je uchován při příštím generování kódu.
Další informace o STM32CubeMX naleznete v uživatelské příručce STM32CubeMX pro konfiguraci STM32 a generování inicializačního kódu C (UM1718).
Aplikace pro ovladače
Aplikace HAL
Tato část popisuje kroky potřebné k vytvoření vlastní aplikace HAL pomocí STM32CubeWL3:
- Vytvořte projekt
Chcete-li vytvořit nový projekt, začněte buď z projektu šablony poskytnutého pro každou desku pod \Projects\< STM32xxx_yyy>\Templates nebo z libovolného dostupného projektu pod \Projects\ \Příkladampl es nebo \Projects\ \Aplikace (kde odkazuje na název desky). Projekt Template poskytuje prázdnou funkci hlavní smyčky. Je to však dobrý výchozí bod pro pochopení nastavení projektu STM32CubeWL32. Šablona má následující vlastnosti:- Obsahuje zdrojový kód HAL, ovladače CMSIS a BSP, což je minimální sada komponent potřebných k vývoji kódu na dané desce.
- Obsahuje zahrnuté cesty pro všechny součásti firmwaru.
- Definuje podporovaná zařízení produktové řady STM32WL3x, což umožňuje správnou konfiguraci ovladačů CMSIS a HAL.
- Poskytuje uživatele připraveného k použití fileje předkonfigurováno, jak je znázorněno níže:
- HAL inicializován s výchozí časovou základnou s jádrem Arm® SysTick.
- SysTick ISR implementovaný pro účely HAL_Delay().
Poznámka: Při kopírování existujícího projektu do jiného umístění se ujistěte, že jsou aktualizovány všechny zahrnuté cesty.
- Nakonfigurujte součásti firmwaru
Komponenty HAL a middleware nabízejí sadu možností konfigurace v době sestavení pomocí maker #define deklarovaných v záhlaví file. Konfigurace šablony file je poskytován v rámci každé komponenty, kterou je nutné zkopírovat do složky projektu (obvykle konfigurace file se jmenuje xxx_conf_template.h, fragment _template je třeba při kopírování do složky projektu odstranit). Konfigurace file poskytuje dostatek informací k pochopení dopadu každé možnosti konfigurace. Podrobnější informace jsou k dispozici v dokumentaci k jednotlivým komponentům. - Spusťte knihovnu HAL
Po přechodu do hlavního programu musí kód aplikace zavolat HAL_Init() API, aby inicializoval knihovnu HAL, která provádí následující úlohy:- Konfigurace prefetch paměti flash a priority přerušení SysTick (prostřednictvím maker definovaných v stm3 2wl3x_hal_conf.h).
- Konfigurace SysTick pro generování přerušení každou milisekundu s prioritou přerušení SysTick TICK_INT_PRIO definované v stm32wl3x_hal_conf.h.
- Nastavení priority skupiny NVIC na 0.
- Volání funkce zpětného volání HAL_MspInit() definované v uživateli stm32wl3x_hal_msp.c file provádět globální nízkoúrovňové hardwarové inicializace.
- Nakonfigurujte systémové hodiny
Konfigurace systémových hodin se provádí voláním dvou níže popsaných rozhraní API:- HAL_RCC_OscConfig(): toto API konfiguruje interní a externí oscilátory. Uživatel si zvolí konfiguraci jednoho nebo všech oscilátorů.
- HAL_RCC_ClockConfig(): toto API konfiguruje zdroj systémových hodin, latenci flash paměti a předděličky AHB a APB.
- Inicializujte periferní zařízení
- Nejprve napište funkci inicializace periferie. Postupujte následovně:
- Povolte periferní hodiny.
- Nakonfigurujte periferní GPIO.
- Nakonfigurujte kanál DMA a povolte přerušení DMA (v případě potřeby).
- Povolte periferní přerušení (je-li potřeba).
- V případě potřeby upravte soubor stm32xxx_it.c tak, aby volal požadované obslužné rutiny přerušení (periferní a DMA).
- Pokud je zamýšleno použití periferního přerušení nebo DMA, zapište funkce zpětného volání kompletního procesu.
- V uživatelském main.c file, inicializujte strukturu rukojeti periferie a poté zavolejte funkci inicializace periferie pro inicializaci periferie.
- Vyvinout aplikaci
Při této stage, systém je připraven a vývoj kódu uživatelské aplikace může začít.
HAL poskytuje intuitivní a připravená rozhraní API pro konfiguraci periferie. Podporuje dotazování, přerušení a programovací model DMA, aby vyhovoval jakýmkoli požadavkům aplikace. Další podrobnosti o tom, jak používat jednotlivé periferie, najdete v bohatém exampSada je součástí balení MCU STM32CubeWL3.
Pozor:
Ve výchozí implementaci HAL se jako časová základna používá časovač SysTick: generuje přerušení v pravidelných časových intervalech. Pokud je HAL_Delay() volána z periferního procesu ISR, ujistěte se, že přerušení SysTick má vyšší prioritu (číselně nižší) než periferní přerušení. Jinak je proces ISR volajícího
zablokováno. Funkce ovlivňující konfigurace časové základny jsou deklarovány jako __weak, aby bylo možné přepsání v případě jiných implementací v uživateli file (pomocí univerzálního časovače, napřample nebo jiný zdroj času).
Další podrobnosti najdete v HAL_TimeBase example.
Aplikace LL
Tato část popisuje kroky potřebné k vytvoření vlastní aplikace LL pomocí STM32CubeWL3.
- Vytvořte projekt
Chcete-li vytvořit nový projekt, začněte buď z projektu Templates_LL poskytnutého pro každou desku pod \Projects\ \Templates_LL nebo z jakéhokoli dostupného projektu pod \Projects\ \E xamples_LL ( odkazuje na název desky, například NUCLEO-WL32CC33).
Projekt šablony poskytuje prázdnou funkci hlavní smyčky, což je dobrý výchozí bod pro pochopení nastavení projektu pro STM32CubeWL3. Hlavní vlastnosti šablony jsou následující:- Obsahuje zdrojové kódy ovladačů LL a CMSIS, což je minimální sada komponent potřebných k vývoji kódu na dané desce.
- Obsahuje zahrnuté cesty pro všechny požadované součásti firmwaru.
- Vybírá podporované zařízení produktové řady STM32WL3x a umožňuje správnou konfiguraci ovladačů CMSIS a LL.
- Poskytuje uživatele připravené k použití files, které jsou předkonfigurovány takto:
- main.h: definiční abstraktní vrstva LED a USER_BUTTON.
- main.c: Konfigurace systémových hodin pro maximální frekvenci.
- Port LL exampten:
- Zkopírujte/vložte složku Templates_LL – pro zachování původního zdroje – nebo přímo aktualizujte existující projekt Templa tes_LL.
- Poté portování spočívá hlavně v nahrazení Templates_LL files od Exampcílený projekt les_LL.
- Uschovejte všechny specifické části desky. Z důvodu srozumitelnosti jsou části specifické pro desku označeny příznakem specific tags:
Hlavní kroky portování jsou tedy následující:
- Nahraďte soubor stm32wl3x_it.h file.
- Nahraďte soubor stm32wl3x_it.c file.
- Vyměňte hlavní.h file a aktualizujte ji: Ponechte definici LED a uživatelského tlačítka šablony LL pod KONFIGURACE SPECIFICKOU DESKY tags.
- Vyměňte hlavní.c file a aktualizujte to:
- Ponechte konfiguraci hodin funkce šablony SystemClock_Config() LL v části KONFIGURACE SPECIFICKÁ PRO DESKU tags.
- V závislosti na definici LED nahraďte každý výskyt LDx jiným LDy dostupným v file hlavní.h.
S těmito úpravami example běží na cílové desce.
RF aplikace, ukázky a examples
Různé typy RF aplikací, ukázky a exampsoubory jsou k dispozici v balíčku STM32CubeWL3. Jsou uvedeny ve dvou částech níže.
Sub-GHz examplesy a demonstrace
Tyto exampdemonstrují hlavní vlastnosti rádiových periferií MRSUBG a LPAWUR. Tyto exampsoubory jsou dostupné pod:
- Projekty\NUCLEO-WL33CC\Příklamples\MRSUBG
- Projekty\NUCLEO-WL33CC\Příklamples\LPAWUR
- Projekty\NUCLEO-WL33CC\Demonstrations\MRSUBG
- Projekty\NUCLEO-WL33CC\Demonstrations\LPAWUR
Každý exampSoubor nebo demonstrace se obecně skládá ze dvou programů nazývaných Tx a Rx, které fungují jako vysílač a přijímač:
- Examples/MRSUBG
- MRSUBG_802_15_4: implementace fyzické vrstvy definované standardem 802.15.4. Ukazuje, jak nakonfigurovat rádio pro vysílání nebo příjem paketů 802.15.4.
- MRSUBG_BasicGeneric: Výměna základních paketů STM32WL3x MR_SUBG.
- MRSUBG_Chat: Jednoduchá aplikace, která ukazuje, jak používat Tx a Rx na stejném zařízení.
- MRSUBG_DatabufferHandler: Exampsoubor, který ukazuje, jak přepínat z Databufferu 0 a 1.
- MRSUBG_Sequencer AutoAck: Příkladample, který automaticky vysílá a přijímá potvrzení paketů (ACK).
- MRSUBG_WMBusSTD: Výměna zpráv WM-Bus.
- WakeupRadio: Bývalýampotestujte rádiovou periferii LPAWUR.
- Ukázky/MRSUBG
- MRSUBG_RTC_Button_TX: Tento příkladample ukazuje, jak nastavit SoC v režimu hlubokého zastavení a nakonfigurovat MRSUBG tak, aby probudil SoC stisknutím PB2 pro odeslání rámce nebo po vypršení RTC časovače.
- MRSUBG_Sequencer_Sniff: Tento example ukazuje, jak nastavit sekvencer MRSUBG, aby pracoval v režimu sniff. Tento example demonstruje stranu přijímače a vyžaduje jiné zařízení jako vysílač.
- MRSUBG_Timer: Aplikace naplánuje několik instancí časovače MRSUBG (s automatickým načtením) s různými časovými intervaly.
- MRSUBG_WakeupRadio_Tx: Tento example vysvětluje, jak nastavit SoC do režimu hlubokého zastavení a nakonfigurovat MRSUBG tak, aby probudil SoC stisknutím PB2 pro odeslání rámce. Tento example demonstruje stranu vysílače a vyžaduje další zařízení jako přijímač LPAWUR. Přijímač exampSoubor je umístěn ve složce NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
- Ukázky/LPAWUR
- LPAWUR_WakeupRadio_Rx: Tento example vysvětluje, jak nastavit SoC v režimu hlubokého zastavení a nakonfigurovat LPAWUR tak, aby probudil SoC, když snímek dorazí a je správně přijat. Tento example demonstruje stranu přijímače a vyžaduje jiné zařízení jako vysílač. Vysílač exampSoubor je umístěn ve složce NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.
Aplikace Sigfox™
Tyto aplikace ukazují, jak implementovat scénář Sigfox™ a používat dostupná rozhraní API Sigfox™. Jsou k dispozici v cestě projektu Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: Tato aplikace ukazuje, jak používat rozhraní příkazového řádku (CLI) k odesílání příkazů, které používají protokol Sigfox™ k odesílání zpráv a provádění předcertifikačních testů.
- Sigfox_PushButton: Tato aplikace umožňuje vyhodnocení rádiových schopností zařízení STM32WL33xx Sigfox™. Stisknutím PB1 se odešle testovací rámec Sigfox™.
FAQ
- Kdy bych měl použít HAL místo ovladačů LL?
Ovladače HAL nabízejí API na vysoké úrovni a orientované na funkce s vysokou úrovní přenositelnosti. Složitost produktu nebo periferie je pro koncové uživatele skryta.
Ovladače LL nabízejí rozhraní API na úrovni registrů s lepší optimalizací, ale méně přenosné. Vyžadují důkladnou znalost specifikací produktu nebo IP. - Mohou být ovladače HAL a LL použity společně? Pokud ano, jaká jsou omezení?
Je možné použít ovladače HAL i LL. Použijte HAL pro fázi inicializace periferií a poté spravujte I/O operace pomocí ovladačů LL.
Hlavní rozdíl mezi HAL a LL spočívá v tom, že ovladače HAL vyžadují vytvoření a používání ovladačů pro řízení provozu, zatímco ovladače LL pracují přímo na periferních registrech. Míchání HAL a LL je znázorněno v příkladuamples_MIX examples. - Jak jsou povolena inicializační API LL?
Definice inicializačních API LL a souvisejících prostředků (struktur, literálů a prototypů) je podmíněna přepínačem kompilace USE_FULL_LL_DRIVER.
Abyste mohli používat inicializační API LL, přidejte tento přepínač do preprocesoru kompilátoru toolchain. - Existuje nějaký šablonový projekt pro periferní zařízení MRSUBG/LPAWUR examples?
Chcete-li vytvořit nový MRSUBG nebo LPAWUR example projektu, buď začněte od kostrového projektu poskytnutého pod \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG nebo \Projects\NUCLEO-WL33CC\Examples\LPAWUR nebo z jakéhokoli dostupného projektu ve stejných adresářích. - Jak může STM32CubeMX generovat kód založený na vestavěném softwaru?
STM32CubeMX má vestavěné znalosti mikrokontrolérů STM32, včetně jejich periferií a softwaru, což mu umožňuje poskytnout uživateli grafické znázornění a generovat *.h nebo *.c files na základě konfigurace uživatele.
Historie revizí
Tabulka 3. Historie revizí dokumentu
Datum | Revize | Změny |
29-března-2024 | 1 | Počáteční vydání. |
30. října 2024 | 2 | Plná integrace STM32CubeWL3 in STM32Cube. Aktualizováno:
Odebráno:
|
Dokumenty / zdroje
![]() |
Softwarový balíček ST STM32WL3x [pdfPokyny STM32WL3x softwarový balíček, STM32WL3x, softwarový balíček, balíček |