STM32WL3x программалык пакети
Техникалык шарттар
- Продукт аты: STM32CubeWL3 программалык пакети
- Шайкештик: STM32WL3x микроконтроллерлер
- Негизги өзгөчөлүктөрү:
- Төмөн катмар (LL) жана аппараттык абстракция катмары (HAL) API'лери
- SigfoxTM, FatFS жана FreeRTOSTM өзөктүк программанын компоненттери
- Арыздар жана демонстрациялар
Продукт колдонуу нускамалары
Баштоо
STM32CubeWL3 программалык пакетин колдонууну баштоо үчүн, бул кадамдарды аткарыңыз:
- Расмийден программалык пакетти жүктөп алыңыз webсайт.
- Керектүү иштеп чыгуу чөйрөсүн орнотуңуз (мисалы, STM32CubeIDE, EWARM, MDK-ARM).
- Мурункуга кайрылыңызampкөрсөтмөлөр жана колдонмолор.
STM32CubeWL3 Архитектурасы бүттүview
STM32CubeWL3 программалык пакети үч негизги деңгээлде курулган
- 0-деңгээл: Аппараттык абстракция катмары (HAL) жана BSP драйверлери.
- 1-деңгээл: Тиркемелер, китепканалар жана протоколго негизделген компоненттер.
Көп берилүүчү суроолор (FAQ)
С: STM32CubeWL3 программалык пакетинин негизги өзгөчөлүктөрү кайсылар?
Ж: Негизги өзгөчөлүктөргө төмөнкү катмарлуу жана HAL API'лери, SigfoxTM, FatFS, FreeRTOSTM ядросу, тиркемелер жана демонстрациялар сыяктуу орто программалык компоненттер кирет.
Introduction
STM32Cube - иштеп чыгуу аракетин, убакытты жана чыгымды азайтуу аркылуу дизайнердин өндүрүмдүүлүгүн олуттуу жогорулатуу үчүн STMicroelectronics оригиналдуу демилгеси. STM32Cube бүт STM32 портфелин камтыйт.
STM32Cube төмөнкүлөрдү камтыйт:
- Долбоорду иштеп чыгууну концепциядан ишке ашырууга чейин камтуу үчүн колдонуучуга ыңгайлуу программалык камсыздоону иштеп чыгуу инструменттеринин жыйындысы, алардын арасында:
- STM32CubeMX, графикалык усталарды колдонуу менен C инициализациялоо кодун автоматтык түрдө чыгарууга мүмкүндүк берген графикалык программалык конфигурациялоо куралы
- STM32CubeIDE, перифериялык конфигурация, кодду түзүү, кодду түзүү жана мүчүлүштүктөрдү оңдоо функциялары менен бардыгы биринде иштеп чыгуу куралы
- STM32CubeCLT, коддорду компиляциялоо, такта программалоо жана мүчүлүштүктөрдү оңдоо функциялары менен бардыгы бир жерде буйрук сабын иштеп чыгуу инструменттери
- STM32CubeProgrammer (STM32CubeProg), графикалык жана буйрук сап версияларында жеткиликтүү программалоо куралы
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), реалдуу убакытта STM32 тиркемелеринин жүрүм-турумун жана иштешин тактоо үчүн күчтүү мониторинг куралдары
- STM32Cube MCU жана MPU топтомдору, ар бир микроконтроллерге жана микропроцессордук серияларга мүнөздүү комплекстүү камтылган программалык платформалар (мисалы, STM32WL3x продукт линиясы үчүн STM32CubeWL3), алар төмөнкүлөрдү камтыйт:
- STM32Cube аппараттык абстракция катмары (HAL), STM32 портфолиосу боюнча максималдуу көчүрүүнү камсыз кылуу
- STM32Cube төмөнкү катмарлуу API'лер,] аппараттык жабдыктарды колдонуучунун жогорку деңгээлдеги башкаруусу менен мыкты аткарууну жана издерди камсыз кылуу
- FreeRTOS™ ядросу, FatFS жана Sigfox™ сыяктуу ортоңку программанын компоненттеринин ырааттуу топтому
- Бардык камтылган программалык утилиталар перифериялык жана прикладдык эксamples
- STM32Cube MCU жана MPU топтомдорунун функцияларын толуктаган камтылган программалык компоненттерди камтыган STM32Cube кеңейтүү пакеттери:
-
- Орто программанын кеңейтүүлөрү жана колдонмо катмарлары
- Examples кээ бир конкреттүү STMicroelectronics иштеп чыгуу такталарында иштейт
Бул колдонуучу колдонмосу STM32CubeWL3 MCU пакетин кантип баштоону сүрөттөйт.
2-бөлүм STM32CubeWL3 негизги өзгөчөлүктөрүн сүрөттөйт, ал эми 3-бөлүм ашыкча маалымат беретview анын архитектурасы жана MCU пакетинин структурасы.
Жалпы маалымат
STM32CubeWL3 Arm® Cortex®‑M32+ процессоруна негизделген STM3WL0x продукт линиясынын микроконтроллерлеринде, анын ичинде Sigfox™ бинарларын камтыган суб-ГГц демонстрациялык тиркемелерди иштетет.
STM32WL3x микроконтроллерлери STMicroelectronicsтин эң заманбап суб-ГГц шайкеш RF радио перифериялык түзүлүшүн камтыган, ультра аз энергия керектөө жана эң сонун радио аткаруу үчүн оптималдаштырылган, батареянын теңдешсиз иштөө мөөнөтү үчүн.
Эскертүү: Arm - АКШдагы жана/же башка жердеги Arm Limited (же анын туунду компаниялары) катталган соода белгиси.
STM32CubeWL3 негизги өзгөчөлүктөрү
- STM32CubeWL3 MCU пакети Arm® Cortex®‑M32+ процессорунун негизиндеги STM32 0-бит микроконтроллерлеринде иштейт. Ал бир пакетте STM32WL3x продукт линиясынын микроконтроллерлери үчүн тиркемени иштеп чыгуу үчүн зарыл болгон бардык жалпы камтылган программалык компоненттерди чогултат.
- Пакет микроконтроллердин жабдыктарын камтыган төмөнкү катмарлуу (LL) жана аппараттык абстракция катмарынын (HAL) API'лерин, ошондой эле экстенсивдүү топтомду камтыйт.ampSTMicroelectronics такталарында иштеген les. HAL жана LL API'лери колдонуучуга ыңгайлуу болушу үчүн ачык булактуу BSD лицензиясында жеткиликтүү. Ал ошондой эле Sigfox™, FatFS жана FreeRTOS™ ядросунун орто программалык компоненттерин камтыйт.
- STM32CubeWL3 MCU пакети ошондой эле анын бардык ортолук компоненттерин ишке ашыруучу бир нече тиркемелерди жана демонстрацияларды камсыз кылат.
- STM32CubeWL3 MCU пакетинин компонентинин схемасы 1-сүрөттө көрсөтүлгөн.
Сүрөт 1. STM32CubeWL3 MCU пакетинин компоненттери
STM32CubeWL3 архитектурасы бүттүview
STM32CubeWL3 MCU пакетинин чечими 2-сүрөттө сүрөттөлгөндөй оңой өз ара аракеттенүүчү үч көз карандысыз деңгээлде курулган. 0-деңгээл
Бул деңгээл үч субкатмарга бөлүнөт:
- Башкармалык колдоо пакети (BSP).
- Аппараттык абстракция катмары (HAL):
- HAL перифериялык драйверлери
- Төмөн катмардагы айдоочулар
- Негизги перифериялык колдонуу, мисалыamples.
Башкармалык колдоо пакети (BSP)
Бул катмар аппараттык такталардагы аппараттык компоненттерге (мисалы, LED, баскычтар жана COM драйверлери) салыштырмалуу API топтомун сунуштайт. Ал эки бөлүктөн турат:
- Компонент:
Бул STM32 эмес, тактадагы тышкы түзмөккө салыштырмалуу драйвер. Компонент драйвери BSP драйверинин тышкы компоненттерине белгилүү API'лерди берет жана башка тактайда көчмө болушу мүмкүн. - BSP айдоочусу:
Бул компонент драйверлерин белгилүү бир тактага байланыштырууга мүмкүндүк берет жана колдонуучуга ыңгайлуу API топтомун камсыз кылат. API аталышынын эрежеси - BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP модулдук архитектурага негизделген, ал жөн гана төмөнкү деңгээлдеги процедураларды ишке ашыруу менен каалаган жабдыкта оңой көчүрүүгө мүмкүндүк берет.
Аппараттык абстракция катмары (HAL) жана төмөнкү катмар (LL)
STM32CubeWL3 HAL жана LL кошумча болуп саналат жана колдонуу талаптарынын кеңири спектрин камтыйт:
- HAL драйверлери жогорку деңгээлдеги функцияга багытталган, портативдик API'лерди сунуштайт. Алар акыркы колдонуучуга MCU жана перифериялык татаалдыкты жашырышат.
HAL драйверлери колдонууга даяр процесстерди камсыз кылуу менен колдонуучунун тиркемесин ишке ашырууну жөнөкөйлөштүрүүчү жалпы көп инстанциялуу өзгөчөлүктөргө багытталган API'лерди камсыз кылат. Мисалы үчүнample, байланыш перифериялык түзүлүштөрү үчүн (I2C, UART жана башкалар) перифериялык түзүлүштү инициализациялоого жана конфигурациялоого, сурамжылоого, үзгүлтүккө учуратууга же DMA процессине негизделген маалыматтарды берүүнү башкарууга жана байланыш учурунда пайда болушу мүмкүн болгон байланыш каталарын башкарууга мүмкүндүк берген API'лерди камсыз кылат. HAL драйверинин API'лери эки категорияга бөлүнөт:
- Бардык STM32 сериясындагы микроконтроллерлерге жалпы жана жалпы функцияларды камсыз кылган жалпы API'лер.
- Белгилүү бир үй-бүлө же белгилүү бир бөлүк номери үчүн конкреттүү жана ыңгайлаштырылган функцияларды камсыз кылган кеңейтүү API'лери.
- Төмөн катмардагы API'лер реестр деңгээлинде төмөн деңгээлдеги API'лерди камсыздайт, оптималдаштыруу жакшыраак, бирок азыраак көчүрүү. Алар MCU жана перифериялык спецификациялар боюнча терең билимди талап кылат.
LL драйверлери HALга караганда жабдыкка жакыныраак, тез жеңил салмактагы экспертке багытталган катмарды сунуштоо үчүн иштелип чыккан. HALдан айырмаланып, LL API'лери оптималдаштырылган жетүү негизги өзгөчөлүк болбогон перифериялык түзүлүштөр үчүн же оор программалык конфигурацияны же татаал жогорку деңгээлдеги стекти талап кылгандар үчүн каралган эмес.
LL айдоочулар өзгөчөлүктөрү:
- Маалымат структураларында көрсөтүлгөн параметрлерге ылайык перифериялык негизги функцияларды инициализациялоо үчүн функциялардын жыйындысы.
- Ар бир талаага туура келген баштапкы абалга келтирүү маанилери менен инициализация маалымат структураларын толтуруу үчүн функциялардын жыйындысы.
- Перифериялык де-инициализациялоо функциясы (перифериялык регистрлер демейки маанилерине кайтарылган).
- Түз жана атомдук регистрге кирүү үчүн саптык функциялардын жыйындысы.
- HALдан толук көз карандысыздык жана өз алдынча режимде колдонуу мүмкүнчүлүгү (HAL айдоочулары жок).
- Колдоого алынган перифериялык функцияларды толук камтуу.
Негизги перифериялык колдонуу, мисалыamples
Бул катмар эксampHAL жана BSP ресурстарын колдонуу менен STM32 перифериялык түзүлүштөрүнүн үстүнө курулган les.
Демонстрация эксamples дагы татаал экс көрсөтүү үчүн жеткиликтүүampMRSUBG жана LPAWUR сыяктуу конкреттүү перифериялык түзүлүштөр менен сценарийлер.
1-деңгээл
Бул деңгээл эки катмарга бөлүнөт:
- Орточо программанын компоненттери
- Exampорто программанын компоненттерине негизделген
Орточо программанын компоненттери
Орточо программа FreeRTOS™ өзөгүн, FatFS жана Sigfox™ протоколдук китепканасын камтыган китепканалардын жыйындысы. Бул катмардын компоненттеринин ортосундагы горизонталдуу өз ара аракеттенүү өзгөчөлөнгөн API'лерди чакыруу менен ишке ашырылат.
Төмөн катмардагы драйверлер менен вертикалдуу өз ара аракеттенүү китепкана тутумунун чалуу интерфейсинде ишке ашырылган атайын кайра чалуулар жана статикалык макростар аркылуу ишке ашырылат.
Ар бир ортолук программалык камсыздоонун негизги өзгөчөлүктөрү төмөнкүлөр:
- FreeRTOS™ өзөгү: кыналган системалар үчүн иштелип чыккан реалдуу убакытта иштөө тутумун (RTOS) ишке ашырат.
- Sigfox™: Sigfox™ протоколдор тармагына шайкеш келген Sigfox™ протоколдор китепканасын ишке ашырат жана RF Sigfox™ куралдарына каршы сыноо үчүн RF тест протоколунун китепканасын камтыйт.
- FatFS: жалпы FAT ишке ашырат file система модулу.
Exampорто программанын компоненттерине негизделген
Ар бир ортолук программанын компоненти бир же бир нече экс менен келетamples, аны кантип колдонууну көрсөтүүчү тиркемелер деп да аталат. Интеграция эксampбир нече ортоңку программалык компоненттерди колдонгон les да берилген.
STM32CubeWL3 микропрограмма пакети бүттүview
Колдоого алынган STM32WL3x түзмөктөрү жана жабдыктары
STM32Cube жалпы архитектуранын айланасында курулган өтө көчмө аппараттык абстракция катмарын (HAL) сунуштайт. Бул катмарларды түзүү принцибине мүмкүндүк берет, мисалы, орто программа катмарын MCU эмне колдонуларын билбей туруп, өз функцияларын ишке ашыруу үчүн колдонуу. Бул китепкана кодун кайра колдонуу мүмкүнчүлүгүн жакшыртат жана башка түзмөктөргө оңой көчүрүүнү камсыз кылат.
- Мындан тышкары, анын катмарлуу архитектурасы менен, STM32CubeWL3 бардык STM32WL3x продукт линиясын толук колдоону сунуш кылат.
- Колдонуучу stm32wl3x.h ичинде туура макрону гана аныкташы керек.
1-таблица колдонулган STM32WL3x продукт линиясынын түзүлүшүнө жараша аныктала турган макрону көрсөтөт. Бул макро компилятордун препроцессорунда да аныкталышы керек.
Таблица 1. STM32WL3x продукт линиясы үчүн макрос
Макро менен аныкталган stm32wl3x.h | STM32WL3x продукт линиясы түзмөктөр |
stm32wl33 | STM32WL33xx микроконтроллерлери |
STM32CubeWL3 бир бай топтомун камтыйтampбардык деңгээлдердеги les жана тиркемелер, бул каалаган HAL драйверин же орто программанын компоненттерин түшүнүүнү жана колдонууну жеңилдетет. Булар эксamples 2-таблицада келтирилген STMicroelectronics такталарында иштейт.
Башкармалык | STM32WL3x тактасы колдоого алынган түзмөктөр |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
STM32CubeWL3 MCU пакети ар кандай шайкеш жабдыкта иштей алат. Колдонуучулар жөн гана BSP драйверлерин жаңыртышатampалардын тактайларындагы les, эгерде аларда бирдей аппараттык өзгөчөлүктөрү бар болсо (мисалы, LED же баскычтар).
Микропрограмма пакети бүттүview
STM32CubeWL3 MCU пакетинин чечими 3-сүрөттө көрсөтүлгөн структурага ээ болгон бир zip пакетинде берилген.
Сүрөт 3. STM32CubeWL3 микропрограмма пакетинин түзүлүшү
Абайлаңыз:
Колдонуучу компоненттерди өзгөртпөшү керек fileс. Колдонуучу \Projects булактарын гана түзөтө алат.
Ар бир такта үчүн, эксamples EWARM, MDK-ARM жана STM32CubeIDE куралдар чынжырлары үчүн алдын ала конфигурацияланган долбоорлор менен камсыздалган.
4-сүрөт NUCLEO-WL33CCx такталары үчүн долбоордун түзүмүн көрсөтөт.
мурдагыamples алар колдонулган STM32CubeWL3 деңгээлине жараша классификацияланат. Алар төмөнкүчө аталат:
- 0-деңгээл мурункуamples Ex деп аталатamples, Examples_LL, жана Examples_MIX. Алар тиешелүүлүгүнө жараша HAL драйверлерин, LL драйверлерин жана HAL жана LL драйверлеринин аралашмасын орто программалык компонентсиз колдонушат. Демонстрация эксampлестер да бар.
- 1-деңгээл мурункуamples Тиркемелер деп аталат. Алар орто программанын ар бир компонентинин типтүү колдонуу учурларын камсыз кылат.
Берилген такта үчүн каалаган микропрограмма тиркемесин Templ ates жана Templates_LL каталогдорундагы шаблон долбоорлорун колдонуу менен тез түзсө болот.
Examples, Examples_LL, жана Examples_MIX бирдей түзүлүшкө ээ:
- \Inc папкасы бардык башты камтыган files.
- Булак кодун камтыган \Src папкасы.
- \EWARM, \MDK-ARM жана \STM32CubeIDE папкалары ар бир инструменттер тизмеги үчүн алдын ала конфигурацияланган долбоорду камтыйт.
- readme.md жана readme.html экс сүрөттөгөнampле жүрүм-туруму жана аны иштетүү үчүн зарыл чөйрө.
STM32CubeWL3 менен баштоо
Биринчи экс иштеп жататample
Бул бөлүмдө биринчи экс иштетүү канчалык жөнөкөй түшүндүрүлөтample STM32CubeWL3 ичинде. Ал мисал катары NUCLEO-WL33CC1 тактасында иштеген жөнөкөй LED которгучтун жаралышын колдонот:
- STM32CubeWL3 MCU топтомун жүктөп алыңыз.
- Аны ачыңыз же орноткучту өзүңүз каалаган каталогго иштетиңиз.
- 3-сүрөттө көрсөтүлгөн таңгак түзүмүн өзгөртпөө керек. STM32CubeWL3 микропрограмма пакетинин түзүмү. Белгилей кетчү нерсе, пакетти түпкү көлөмүнө жакын жерге көчүрүү сунушталат (C:\ST же G:\Tests дегенди билдирет), анткени кээ бир IDEлер жол өтө узун болгондо көйгөйлөргө туш болушат.
HAL экс кантип иштетүү керекample
экс жүктөө жана иштетүү алдындаampле, бул катуу экс окуу сунуш кылынатample readme file кандайдыр бир конкреттүү конфигурация үчүн.
- \Projects\NUCLEO-WL33CC\Мисamples.
- \GPIO, андан кийин \GPIO_EXTI папкаларын ачыңыз.
- Долбоорду тандалган куралдар чынжырчасы менен ачыңыз. Тез бүттүview экс кантип ачуу, куруу жана иштетүү боюнчаampле колдоого алынган инструменталдык чынжырчалар төмөндө келтирилген.
- Баарын кайра куруу fileс жана сүрөттү максаттуу эс тутумга жүктөңүз.
- Мурун иштетample. Көбүрөөк маалымат алуу үчүн, эксample readme file.
Мурун ачуу, куруу жана иштетүү үчүнampар бир колдоого алынган инструмент чынжырлары менен төмөнкү кадамдарды аткарыңыз:
- EWARM:
- Эксamples папкасын ачып, \EWARM папкасын ачыңыз.
- Project.eww жумушчу мейкиндигин ишке киргизиңиз (жумуш мейкиндигинин аты мурункудан өзгөрүшү мүмкүнampбашкага).
- Баарын кайра куруу files: [Долбоор]>[Баарын кайра куруу].
- Долбоордун сүрөтүн жүктөө: [Долбоор]> [Мүчүлүштүктөрдү оңдоо].
- Программаны иштетиңиз: [Debug]>[Go (F5)].
- MDK-ARM:
- Эксamples папкасын ачып, \MDK-ARM папкасын ачыңыз.
- Project.uvproj жумушчу мейкиндигин ачыңыз (жумуш мейкиндигинин аталышы мурункудан өзгөрүшү мүмкүнampбашкага).
- Баарын кайра куруу files: [Долбоор]>[Бардык максатты кайра куруу fileс].
- Долбоордун сүрөтүн жүктөө: [Debug]>[Debug Session Start/Stop].
- Программаны иштетиңиз: [Debug]>[Run (F5)].
- STM32CubeIDE:
- STM32CubeIDE куралдар чынжырын ачыңыз.
- чыкылдатуу [File]>[Жумуш мейкиндигин которуштуруу]>[Башка] жана STM32CubeIDE жумушчу мейкиндигинин каталогун карап чыгыңыз.
- чыкылдатуу [File]>[Импорт], [Жалпы]>[Жумуш мейкиндигиндеги бар долбоорлорду] тандап, андан кийин [Кийинки] чыкылдатыңыз.
- STM32CubeIDE жумушчу мейкиндигинин каталогун карап чыгып, долбоорду тандаңыз.
- Бардык долбоорду кайра куруу files: Project Explorer терезесинде долбоорду тандап, андан кийин чыкылдатыңыз
[Долбоор]>[Долбоорду куруу] менюсу. - Программаны иштетиңиз: [Run]> [Debug (F11)].
Ыңгайлаштырылган колдонмону иштеп чыгуу
Колдонмону иштеп чыгуу же жаңыртуу үчүн STM32CubeMX колдонуу
STM32Cube MCU пакетинде, дээрлик бардык долбоор мурункуamples STM32CubeMX куралы менен системаны, перифериялык түзүлүштөрдү жана орто программаны инициализациялоо үчүн түзүлөт.
Учурдагы долбоордун түздөн-түз пайдалануусуampSTM32CubeMX куралынан STM32CubeMX 6.12.0 же андан жогору талап кылынат:
- STM32CubeMX орнотулгандан кийин, сунушталган долбоорду ачып, зарыл болсо жаңыртыңыз.
Учурдагы долбоорду ачуунун эң жөнөкөй жолу - *.iocти эки жолу басуу file Ошентип, STM32CubeMX автоматтык түрдө долбоорду жана анын булагын ачат fileс. STM32CubeMX мындай долбоорлордун инициализация булак кодун жаратат. - Колдонмонун негизги булак коду “КОЛДОНЧУ КОД БАШТАЛГАН” жана “КОЛДОНЧУ КОД END” комментарийлеринде камтылган. Эгерде перифериялык тандоо жана орнотуулар өзгөртүлсө, STM32CubeMX негизги колдонмонун баштапкы кодун сактап, коддун инициализациялоо бөлүгүн жаңылайт.
STM32CubeMX менен ыңгайлаштырылган долбоорду иштеп чыгуу үчүн кадам-кадам процессин аткарыңыз:
- Пинот-конфликт чечүүчү, саат дарагынын жөндөө жардамчысы, энергия керектөөчү калькулятор жана MCU перифериялык конфигурациясын аткарган утилитаны (мисалы, GPIO же USART) колдонуп, бардык керектүү кыналган программалык камсыздоону конфигурациялаңыз.
- Тандалган конфигурациянын негизинде инициализация C кодун жаратыңыз. Бул код бир нече иштеп чыгуу чөйрөлөрүндө колдонууга даяр. Колдонуучу коду кийинки код муунунда сакталат.
STM32CubeMX жөнүндө көбүрөөк маалымат алуу үчүн, STM32 конфигурациялоо жана инициализациялоо C кодун түзүү (UM32) үчүн STM1718CubeMX колдонуучу колдонмосун караңыз.
Айдоочу колдонмолору
HAL колдонмосу
Бул бөлүмдө STM32CubeWL3 аркылуу ыңгайлаштырылган HAL тиркемесин түзүү үчүн зарыл болгон кадамдар сүрөттөлөт:
- Долбоор түзүү
Жаңы долбоорду түзүү үчүн \Projects\< STM32xxx_yyy>\Templates астындагы ар бир такта үчүн берилген Калып долбоорунан же \Projects\ астындагы жеткиликтүү долбоорлордон баштаңыз. \Мисampl es же \Долбоорлор\ \ Колдонмолор (кайда тактанын аталышын билдирет). Template долбоору бош негизги цикл функциясын камсыз кылат. Бирок, бул STM32CubeWL32 долбоордун жөндөөлөрүн түшүнүү үчүн жакшы башталгыч чекит болуп саналат. шаблон төмөнкү өзгөчөлүктөргө ээ:- Ал HAL булак кодун, CMSIS жана BSP драйверлерин камтыйт, алар берилген тактада кодду иштеп чыгуу үчүн зарыл болгон компоненттердин минималдуу топтому.
- Ал бардык микропрограмма компоненттери үчүн камтылган жолдорду камтыйт.
- Бул CMSIS жана HAL драйверлерин туура конфигурациялоого мүмкүндүк берген STM32WL3x продукт линиясынын түзмөктөрүн аныктайт.
- Бул колдонууга даяр колдонуучуну камсыз кылат fileтөмөндө көрсөтүлгөндөй алдын ала конфигурацияланган:
- HAL Arm® негизги SysTick менен демейки убакыт базасы менен инициализацияланган.
- SysTick ISR HAL_Delay() максатында ишке ашырылган.
Эскертүү: Учурдагы долбоорду башка жерге көчүрүп жатканда, бардык камтылган жолдор жаңыртылганын текшериңиз.
- Микропрограмма компоненттерин конфигурациялаңыз
HAL жана орто программанын компоненттери темада жарыяланган #define макросторун колдонуу менен куруу убактысынын конфигурациясынын варианттарынын топтомун сунуштайт. file. Шаблон конфигурациясы file ар бир компоненттин ичинде берилет, ал долбоордун папкасына көчүрүлүшү керек (көбүнчө конфигурация file xxx_conf_template.h деп аталат, _template фрагменти аны долбоордун папкасына көчүрүп жатканда алып салуу керек). конфигурация file ар бир конфигурация вариантынын таасирин түшүнүү үчүн жетиштүү маалымат берет. Кененирээк маалымат ар бир компонент үчүн берилген документтерде бар. - HAL китепканасын баштаңыз
Негизги программага өткөндөн кийин, колдонмо коду төмөнкү тапшырмаларды аткарган HAL китепканасын инициализациялоо үчүн HAL_Init() API чакырышы керек:- Флэш эстутумду алдын ала алып келүү жана SysTick үзгүлтүккө учуроо артыкчылыгын конфигурациялоо (stm3 2wl3x_hal_conf.h ичинде аныкталган макростар аркылуу).
- stm32wl3x_hal_conf.h ичинде аныкталган TICK_INT_PRIO SysTick үзгүлтүккө учуратуу приоритетинде ар бир миллисекундда үзгүлтүктөрдү түзүү үчүн SysTick конфигурациясы.
- NVIC тобунун артыкчылыктуулугун 0гө коюу.
- stm32wl3x_hal_msp.c колдонуучуда аныкталган HAL_MspInit() кайра чалуу функциясынын чалуусу file глобалдык төмөнкү деңгээлдеги аппараттык инициализацияларды аткаруу үчүн.
- Системанын саатын конфигурациялаңыз
Системалык сааттын конфигурациясы төмөндө сүрөттөлгөн эки APIди чакыруу аркылуу ишке ашырылат:- HAL_RCC_OscConfig(): бул API ички жана тышкы осцилляторлорду конфигурациялайт. Колдонуучу бир же бардык осцилляторлорду конфигурациялоону тандайт.
- HAL_RCC_ClockConfig(): бул API системалык сааттын булагын, флэш эстутумдун кечигүү убактысын жана AHB жана APB алдын ала шкалаларын конфигурациялайт.
- Перифериялык түзүлүштү баштоо
- Алгач перифериялык инициализация функциясын жазыңыз. Төмөнкүдөй жүрүңүз:
- Перифериялык саатты иштетүү.
- Перифериялык GPIO конфигурациялаңыз.
- DMA каналын конфигурациялаңыз жана DMA үзүлүүсүн иштетиңиз (зарыл болсо).
- Перифериялык үзгүлтүктү иштетүү (зарыл болсо).
- Керек болсо, талап кылынган үзгүлтүктөрдү иштетүүчүлөрдү (перифериялык жана DMA) чакыруу үчүн stm32xxx_it.c түзөтүңүз.
- Эгерде перифериялык үзгүлтүк же DMA колдонулушу керек болсо, процесстин толук кайра чалуу функцияларын жазыңыз.
- Колдонуучуда main.c file, перифериялык тутка структурасын инициализациялаңыз, андан кийин перифериялык инициализациялоо функциясын чакырыңыз.
- Колдонмо иштеп чыгуу
Бул жерде сtagд, система даяр жана колдонуучу колдонмо кодун иштеп баштаса болот.
HAL перифериялык түзүлүштү конфигурациялоо үчүн интуитивдик жана колдонууга даяр API'лерди камсыз кылат. Ал сурамжылоону, үзгүлтүктөрдү жана DMA программалоо моделин колдойт. Ар бир перифериялык түзүлүштү кантип колдонуу керектиги жөнүндө көбүрөөк маалымат алуу үчүн, бай эксample топтому STM32CubeWL3 MCU пакетинде берилген.
Абайлаңыз:
Демейки HAL ишке ашырууда SysTick таймери убакыт базасы катары колдонулат: ал үзгүлтүксүз убакыт аралыктарында үзгүлтүктөрдү жаратат. Эгерде HAL_Delay() перифериялык ISR процессинен чакырылса, SysTick үзгүлтүккө учурашы перифериялык үзгүлтүккө караганда жогорураак артыкчылыкка (сан жагынан төмөн) ээ экенин текшериңиз. Болбосо, чалуучу ISR жараяны болуп саналат
бөгөттөлгөн. Убакыт базасынын конфигурацияларына таасир этүүчү функциялар колдонуучуда башка ишке ашырууда жокко чыгарууну мүмкүн кылуу үчүн __алсыз деп жарыяланды. file (жалпы максаттагы таймерди колдонуу, мисалыample, же башка убакыт булагы).
Көбүрөөк маалымат алуу үчүн HAL_TimeBase эксample.
LL колдонмо
Бул бөлүмдө STM32CubeWL3 аркылуу ыңгайлаштырылган LL тиркемесин түзүү үчүн зарыл болгон кадамдар сүрөттөлөт.
- Долбоор түзүү
Жаңы долбоорду түзүү үчүн, \Projects\ астындагы ар бир такта үчүн берилген Templates_LL долбоорунан баштаңыз. \ Templates_LL же \Projects\ астындагы бардык жеткиликтүү долбоорлордон \E xamples_LL ( тактасынын аталышын билдирет, мисалы, NUCLEO-WL32CC33).
Үлгү долбоору бош негизги цикл функциясын камсыз кылат, бул STM32CubeWL3 үчүн долбоордун жөндөөлөрүн түшүнүү үчүн жакшы башталгыч чекит. Калыптын негизги мүнөздөмөлөрү болуп төмөнкүлөр саналат:- Ал LL жана CMSIS драйверлеринин баштапкы коддорун камтыйт, алар берилген тактада кодду иштеп чыгуу үчүн зарыл болгон компоненттердин минималдуу топтому.
- Ал бардык керектүү микропрограмма компоненттери үчүн камтылган жолдорду камтыйт.
- Ал колдоого алынган STM32WL3x продукт линиясынын түзүлүшүн тандап, CMSIS жана LL драйверлерин туура конфигурациялоого мүмкүндүк берет.
- Бул колдонууга даяр колдонуучуну камсыз кылат files төмөнкүдөй алдын ала конфигурацияланган:
- main.h: LED жана USER_BUTTON аныктоо абстракция катмары.
- main.c: Максималдуу жыштык үчүн системалык сааттын конфигурациясы.
- LL мурунку портampле:
- Templates_LL папкасын көчүрүңүз/ чаптаңыз - баштапкы булакты сактоо үчүн - же учурдагы Templa tes_LL долбоорун түз жаңыртыңыз.
- Андан кийин, көчүрүү негизинен Templates_LL алмаштыруудан турат files тарабынан Examples_LL максаттуу долбоор.
- Бардык тактайдын белгилүү бөлүктөрүн сактаңыз. Түшүнүктүүлүк үчүн тактайдын бөлүктөрү өзгөчө белгилер менен белгиленет tags:
Ошентип, негизги көчүрүү кадамдары болуп төмөнкүлөр саналат:
- stm32wl3x_it.h алмаштырыңыз file.
- stm32wl3x_it.c алмаштырыңыз file.
- негизги.h алмаштырыңыз file жана аны жаңыртыңыз: LL шаблонунун LED жана колдонуучу баскычынын аныктамасын BOARD SPECIFIC CONFIGURATION астында сактаңыз tags.
- Негизгисин алмаштырыңыз.c file жана аны жаңыртыңыз:
- SystemClock_Config() LL шаблон функциясынын саат конфигурациясын BOARD SPECIFIC CONFIGURATION астында сактаңыз tags.
- LED аныктамасына жараша, ар бир LDx көрүнүшүн башка LDy менен алмаштырыңыз file main.h.
Бул өзгөртүүлөр менен эксample максаттуу тактада чуркайт.
RF колдонмолору, демонстрациялар жана эксamples
RF колдонмолорунун ар кандай түрлөрү, демонстрациялар жана эксamples STM32CubeWL3 пакетинде жеткиликтүү. Алар төмөндө эки бөлүмдө келтирилген.
Sub-GHz exampлес жана демонстрациялар
Булар эксamples MRSUBG жана LPAWUR радио перифериялык түзүлүштөрүнүн негизги өзгөчөлүктөрүн көрсөтөт. Булар эксamples төмөнкүдөй жеткиликтүү:
- Долбоорлор\NUCLEO-WL33CC\Мисamples\MRSUBG
- Долбоорлор\NUCLEO-WL33CC\Мисamples\LPAWUR
- Долбоорлор\NUCLEO-WL33CC\Demonstrations\MRSUBG
- Долбоорлор\NUCLEO-WL33CC\Demonstrations\LPAWUR
Ар бир эксample же демонстрация жалпысынан Tx жана Rx деп аталган эки программадан турат, тиешелүүлүгүнө жараша өткөргүч жана кабыл алуучу:
- Examples/MRSUBG
- MRSUBG_802_15_4: 802.15.4 стандарты менен аныкталган физикалык катмардын ишке ашырылышы. Бул 802.15.4 пакеттерин берүү же кабыл алуу үчүн радиону кантип конфигурациялоону көрсөтөт.
- MRSUBG_BasicGeneric: STM32WL3x MR_SUBG негизги пакеттердин алмашуу.
- MRSUBG_Chat: Tx жана Rxти бир эле түзмөктө кантип колдонууну көрсөткөн жөнөкөй колдонмо.
- MRSUBG_DatabufferHandler: Мурункуample Databuffer 0 жана 1ден кантип алмаштырууну көрсөтөт.
- MRSUBG_Sequencer AutoAck: Мурункуample пакеттик ырастоолорду (ACKs) автоматтык түрдө жөнөтүүчү жана кабыл алган.
- MRSUBG_WMBusSTD: WM-Bus билдирүүлөрүнүн алмашуусу.
- WakeupRadio: Мурункуample LPAWUR радио перифериясын сыноо үчүн.
- Демонстрациялар/MRSUBG
- MRSUBG_RTC_Button_TX: Бул эксample SoCти терең токтотуу режимине кантип коюуну жана кадрды жөнөтүү үчүн PB2 баскычын басып же RTC таймеринин мөөнөтү аяктагандан кийин SoCти ойготуу үчүн MRSUBGди конфигурациялоону көрсөтөт.
- MRSUBG_Sequencer_Sniff: Бул эксample MRSUBG секвенсерин жыттоо режиминде иштөө үчүн кантип коюуну көрсөтөт. Бул эксample кабыл алуучу тарапты көрсөтөт жана өткөргүч катары башка аппаратты талап кылат.
- MRSUBG_Timer: Колдонмо MRSUBG таймеринин бир нече учурларын (автоматтык түрдө кайра жүктөө менен) ар кандай убакыт аралыгы менен пландаштырат.
- MRSUBG_WakeupRadio_Tx: Бул эксample SoCти терең токтотуу режимине кантип коюуну жана кадрды жөнөтүү үчүн PB2 баскычын басып SoCти ойготуу үчүн MRSUBGди конфигурациялоону түшүндүрөт. Бул эксample өткөргүч тарапты көрсөтөт жана LPAWUR кабыл алгычы катары башка аппаратты талап кылат. Алуучу эксample NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx папкасынын астында жайгашкан.
- Демонстрациялар/LPAWUR
- LPAWUR_WakeupRadio_Rx: Бул эксample SoCти терең токтотуу режимине кантип коюуну жана кадр келип, туура кабыл алынганда SoCти ойготуу үчүн LPAWURди конфигурациялоону түшүндүрөт. Бул эксample кабыл алуучу тарапты көрсөтөт жана өткөргүч катары башка аппаратты талап кылат. Өткөргүч эксample NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx папкасынын астында жайгашкан.
Sigfox™ колдонмосу
Бул колдонмолор Sigfox™ сценарийин кантип ишке ашырууну жана жеткиликтүү Sigfox™ API'лерди кантип колдонууну көрсөтөт. Алар Projects\NUCLEO-WL33CC\Applications\Sigfox\ долбоорунун жолунда жеткиликтүү:
- Sigfox_CLI: Бул колдонмо билдирүүлөрдү жөнөтүү жана алдын ала тастыктама тесттерин аткаруу үчүн Sigfox™ протоколун колдонгон буйруктарды жөнөтүү үчүн буйрук сап интерфейсин (CLI) кантип колдонууну көрсөтөт.
- Sigfox_PushButton: Бул колдонмо STM32WL33xx Sigfox™ аппаратынын радио мүмкүнчүлүктөрүн баалоого мүмкүндүк берет. PB1 басуу сыноо Sigfox™ кадрын өткөрөт.
Көп берилүүчү суроолор
- LL драйверлеринин ордуна HALды качан колдонушум керек?
HAL драйверлери жогорку деңгээлдеги жана функцияга багытталган API'лерди сунуштайт, алар жогорку деңгээлдеги портативдик менен. Продукт же перифериялык татаалдыгы акыркы колдонуучулар үчүн жашырылган.
LL драйверлери жакшыраак оптималдаштырылган, бирок портативдик азыраак катмарлуу реестр деңгээлиндеги API'лерди сунуштайт. Алар продукт же IP спецификациялары боюнча терең билимди талап кылат. - HAL жана LL драйверлерин чогуу колдонсо болобу? Ооба болсо, кандай чектөөлөр бар?
HAL жана LL драйверлерин да колдонсо болот. Перифериялык инициализация фазасы үчүн HAL колдонуңуз, андан кийин LL драйверлери менен киргизүү/чыгаруу операцияларын башкарыңыз.
HAL жана LL ортосундагы негизги айырма, HAL драйверлери операцияны башкаруу үчүн туткаларды түзүүнү жана колдонууну талап кылат, ал эми LL драйверлери түздөн-түз перифериялык регистрлерде иштешет. HAL жана LL аралаштыруу Examples_MIX examples. - LL инициализация API'лери кантип иштетилген?
LL инициализациялоо API'леринин жана ага байланыштуу ресурстардын (түзүмдөр, литералдар жана прототиптер) аныктамасы USE_FULL_LL_DRIVER компиляция которгучу менен шартталган.
LL инициализациялоо API'лерин колдонуу үчүн, бул которгучту инструменттердин компиляторунун препроцессоруна кошуңуз. - MRSUBG/LPAWUR перифериялык экс. үчүн шаблон долбоору барбы?amples?
Жаңы MRSUBG же LPAWUR экс түзүүample долбоор, же \Pr ojects\NUCLEO-WL33CC\Ex астында берилген скелет долбоорунан баштаңызamples\MRSUBG же \Projects\NUCLEO-WL33CC\Examples\LPAWUR, же ушул эле каталогдордогу бардык жеткиликтүү долбоорлордон. - Кантип STM32CubeMX орнотулган программанын негизинде кодду түзө алат?
STM32CubeMX STM32 микроконтроллерлери, анын ичинде алардын перифериялык жабдыктары жана программалык камсыздоосу жөнүндө камтылган билимге ээ, бул колдонуучуга графикалык өкүлчүлүктү берүүгө жана *.h же *.c түзүүгө мүмкүндүк берет. fileс колдонуучунун конфигурациясына негизделген.
Ревизия тарыхы
Таблица 3. Документти кайра карап чыгуу тарыхы
Дата | Ревизия | Өзгөрүүлөр |
29-март-2024 | 1 | Алгачкы чыгаруу. |
30-октябр-2024 | 2 | Толук интеграциясы STM32CubeWL3 in STM32Cube. Жаңыртылган:
Өчүрүлдү:
|
Документтер / Ресурстар
![]() |
ST STM32WL3x программалык пакети [pdf] Instructions STM32WL3x Программа пакети, STM32WL3x, Программалык камсыздоо пакети, пакет |