STM32WL3x-loigo

STM32WL3x Software Package

STM32WL3x-Software-Package -PRODCUCT

Mga pagtutukoy

  • Pangalan ng Produkto: STM32CubeWL3 software package
  • Pagkakatugma: STM32WL3x microcontrollers
  • Pangunahing Tampok:
    • Low-layer (LL) at hardware abstraction layer (HAL) API
    • Mga bahagi ng kernel middleware ng SigfoxTM, FatFS, at FreeRTOSTM
    • Mga aplikasyon at demonstrasyon

Mga Tagubilin sa Paggamit ng Produkto

Pagsisimula
Upang simulan ang paggamit ng STM32CubeWL3 software package, sundin ang mga hakbang na ito:

  1. I-download ang software package mula sa opisyal website.
  2. I-install ang kinakailangang development environment (hal., STM32CubeIDE, EWARM, MDK-ARM).
  3. Sumangguni sa examples at application na ibinigay para sa gabay.

STM32CubeWL3 Architecture Overview
Ang STM32CubeWL3 software package ay binuo sa paligid ng tatlong pangunahing antas

  • Antas 0: Hardware abstraction layer (HAL) at mga driver ng BSP.
  • Antas 1: Mga application, library, at mga bahaging nakabatay sa protocol.

Mga Madalas Itanong (FAQ)

Q: Ano ang mga pangunahing tampok ng STM32CubeWL3 software package?
A: Kasama sa mga pangunahing feature ang mga low-layer at HAL API, mga bahagi ng middleware tulad ng SigfoxTM, FatFS, FreeRTOSTM kernel, mga application, at mga demonstrasyon.

Panimula

Ang STM32Cube ay isang orihinal na inisyatiba ng STMicroelectronics upang makabuluhang mapabuti ang produktibidad ng designer sa pamamagitan ng pagbawas ng pagsisikap, oras, at gastos sa pag-unlad. Sinasaklaw ng STM32Cube ang buong portfolio ng STM32.

Kasama sa STM32Cube ang:

  • Isang set ng user-friendly na software development tool upang masakop ang pagbuo ng proyekto mula sa pagbuo hanggang sa pagsasakatuparan, kasama ng mga ito ay:
    • STM32CubeMX, isang graphical software configuration tool na nagbibigay-daan sa awtomatikong pagbuo ng C initialization code gamit ang graphical wizards
    • STM32CubeIDE, isang all-in-one development tool na may peripheral configuration, code generation, code compilation, at debug feature
    • STM32CubeCLT, isang all-in-one na command-line development toolset na may code compilation, board programming, at mga feature ng debug
    • STM32CubeProgrammer (STM32CubeProg), isang programming tool na available sa graphical at command-line na mga bersyon
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), makapangyarihang mga tool sa pagsubaybay upang maayos ang pag-uugali at pagganap ng mga STM32 application sa real time
  • STM32Cube MCU at MPU Packages, mga komprehensibong embedded-software na platform na partikular sa bawat microcontroller at microprocessor series (gaya ng STM32CubeWL3 para sa linya ng produkto ng STM32WL3x), na kinabibilangan ng:
    • STM32Cube hardware abstraction layer (HAL), na tinitiyak ang maximum na portability sa buong STM32 portfolio
    • STM32Cube low-layer API, na tinitiyak ang pinakamahusay na performance at mga footprint na may mataas na antas ng kontrol ng user sa] hardware
    • Isang pare-parehong hanay ng mga bahagi ng middleware tulad ng FreeRTOS™ kernel, FatFS, at Sigfox™
    • Lahat ng naka-embed na software utilities na may kumpletong hanay ng peripheral at applicative halamples
  • STM32Cube Expansion Packages, na naglalaman ng mga naka-embed na bahagi ng software na umaakma sa mga functionality ng STM32Cube MCU at MPU Package na may:
    • Mga extension ng middleware at applicative na layer
    • Examples na tumatakbo sa ilang partikular na STMicroelectronics development boards

Inilalarawan ng user manual na ito kung paano magsimula sa STM32CubeWL3 MCU Package.
Inilalarawan ng Seksyon 2 ang mga pangunahing tampok ng STM32CubeWL3 at ang Seksyon 3 ay nagbibigay ng overview ng arkitektura nito at ng istraktura ng MCU Package.

Pangkalahatang impormasyon

Ang STM32CubeWL3 ay nagpapatakbo ng mga sub-GHz na demonstration application, kabilang ang Sigfox™ binaries, sa STM32WL3x product line microcontrollers batay sa Arm® Cortex®‑M0+ processor.
Ang STM32WL3x microcontrollers ay nag-embed ng state-of-the-art na sub-GHz compliant na RF radio peripheral ng STMicroelectronics, na na-optimize para sa ultra-low-power consumption at mahusay na performance ng radyo, para sa walang kapantay na buhay ng baterya.
Tandaan: Ang Arm ay isang rehistradong trademark ng Arm Limited (o mga subsidiary nito) sa US at/o sa ibang lugar.

STM32CubeWL3 pangunahing tampok

  • Ang STM32CubeWL3 MCU Package ay tumatakbo sa STM32 32-bit microcontrollers batay sa Arm® Cortex®‑M0+ processor. Kinokolekta nito, sa isang pakete, ang lahat ng mga generic na naka-embed na bahagi ng software na kinakailangan upang bumuo ng isang application para sa mga microcontroller ng linya ng produkto ng STM32WL3x.
  • Kasama sa package ang mga low-layer (LL) at hardware abstraction layer (HAL) API na sumasaklaw sa microcontroller hardware, kasama ang isang malawak na hanay ng examples na tumatakbo sa STMicroelectronics boards. Ang HAL at LL API ay available sa isang open-source na lisensya ng BSD para sa kaginhawahan ng user. Kasama rin dito ang Sigfox™, FatFS, at FreeRTOS™ na mga bahagi ng kernel middleware.
  • Ang STM32CubeWL3 MCU Package ay nagbibigay din ng ilang mga aplikasyon at demonstrasyon na nagpapatupad ng lahat ng mga bahagi ng middleware nito.
  • Ang layout ng bahagi ng STM32CubeWL3 MCU Package ay inilalarawan sa Figure 1.

Figure 1. STM32CubeWL3 MCU Package na mga bahagi 

STM32WL3x-Software-Package (2)

Tapos na ang arkitektura ng STM32CubeWL3view

Ang solusyon sa STM32CubeWL3 MCU Package ay binuo sa paligid ng tatlong independiyenteng antas na madaling nakikipag-ugnayan tulad ng inilarawan sa Figure 2. STM32WL3x-Software-Package (3)Antas 0
Ang antas na ito ay nahahati sa tatlong sublayer:

  • Board support package (BSP).
  • Hardware abstraction layer (HAL):
    • Mga driver ng peripheral ng HAL
    • Mga driver na may mababang layer
  • Pangunahing paggamit ng peripheral halamples.

Board support package (BSP)
Nag-aalok ang layer na ito ng isang hanay ng mga API na nauugnay sa mga bahagi ng hardware sa mga hardware board (tulad ng mga LED, button, at COM driver). Ito ay binubuo ng dalawang bahagi:

  • Bahagi:
    Ito ang driver na nauugnay sa panlabas na aparato sa board at hindi sa STM32. Ang driver ng component ay nagbibigay ng mga partikular na API sa mga panlabas na bahagi ng driver ng BSP at maaaring madala sa anumang iba pang board.
  • BSP driver:

Nagbibigay-daan ito sa pag-link ng mga component driver sa isang partikular na board at nagbibigay ng isang hanay ng mga user-friendly na API. Ang panuntunan sa pagpapangalan ng API ay BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
Ang BSP ay batay sa isang modular na arkitektura na nagbibigay-daan sa madaling pag-port sa anumang hardware sa pamamagitan lamang ng pagpapatupad ng mababang antas na mga gawain.

Hardware abstraction layer (HAL) at low-layer (LL)
Ang STM32CubeWL3 HAL at LL ay pantulong at sumasaklaw sa malawak na hanay ng mga kinakailangan sa aplikasyon:

  • Ang mga driver ng HAL ay nag-aalok ng mataas na antas ng function-oriented na mataas na portable na mga API. Itinatago nila ang MCU at peripheral complexity sa end-user.
    Ang mga driver ng HAL ay nagbibigay ng mga generic na multi-instance na feature-oriented na API, na nagpapasimple sa pagpapatupad ng application ng user sa pamamagitan ng pagbibigay ng mga prosesong handa nang gamitin. Para kay exampPara sa mga peripheral ng komunikasyon (I2C, UART, at iba pa), nagbibigay ito ng mga API na nagbibigay-daan sa pagsisimula at pag-configure ng peripheral, pamamahala sa paglilipat ng data batay sa proseso ng botohan, pag-abala, o DMA, at paghawak ng mga error sa komunikasyon na maaaring lumitaw sa panahon ng komunikasyon. Ang mga HAL driver API ay nahahati sa dalawang kategorya:
  1. Mga Generic na API, na nagbibigay ng mga pangkaraniwan at generic na function sa lahat ng STM32 series na microcontroller.
  2. Mga Extension API, na nagbibigay ng mga partikular at customized na function para sa isang partikular na pamilya o isang partikular na numero ng bahagi.
  • Ang mga low-layer na API ay nagbibigay ng mga low-level na API sa antas ng rehistro, na may mas mahusay na pag-optimize ngunit mas mababa ang portability. Nangangailangan sila ng malalim na kaalaman sa MCU at mga peripheral na detalye.
    Ang mga driver ng LL ay idinisenyo upang mag-alok ng isang mabilis na magaan na layer na nakatuon sa eksperto na mas malapit sa hardware kaysa sa HAL. Taliwas sa HAL, ang mga LL API ay hindi ibinibigay para sa mga peripheral kung saan ang naka-optimize na pag-access ay hindi isang pangunahing tampok, o para sa mga nangangailangan ng mabigat na configuration ng software o kumplikadong upper-level na stack.

Ang tampok na mga driver ng LL:

  • Isang hanay ng mga function upang simulan ang mga peripheral na pangunahing tampok ayon sa mga parameter na tinukoy sa mga istruktura ng data.
  • Isang hanay ng mga function upang punan ang mga istruktura ng data ng initialization ng mga halaga ng pag-reset na naaayon sa bawat field.
  • Function para sa peripheral de-initialization (mga peripheral register na naibalik sa kanilang mga default na halaga).
  • Isang set ng mga inline na function para sa direktang at atomic register access.
  • Buong pagsasarili mula sa HAL at kakayahang magamit sa standalone mode (walang mga driver ng HAL).
  • Buong saklaw ng mga sinusuportahang peripheral na tampok.

Pangunahing paggamit ng peripheral halamples
Ang layer na ito ay nakapaloob sa examples built over the STM32 peripheral gamit lang ang HAL at BSP resources.
Demonstrasyon halampAng mga les ay magagamit din upang ipakita ang mas kumplikadong exampang mga senaryo na may mga partikular na peripheral, gaya ng MRSUBG at LPAWUR.

Antas 1
Ang antas na ito ay nahahati sa dalawang sublayer:

  • Mga bahagi ng middleware
  • Examples batay sa mga bahagi ng middleware

Mga bahagi ng middleware
Ang middleware ay isang hanay ng mga aklatan na sumasaklaw sa FreeRTOS™ kernel, FatFS, at Sigfox™ protocol library. Ang pahalang na pakikipag-ugnayan sa pagitan ng mga bahagi ng layer na ito ay ginagawa sa pamamagitan ng pagtawag sa mga itinatampok na API.
Ang vertical na pakikipag-ugnayan sa mga low-layer na driver ay ginagawa sa pamamagitan ng mga partikular na callback at static na macro na ipinatupad sa interface ng tawag sa system ng library.
Ang mga pangunahing tampok ng bawat bahagi ng middleware ay ang mga sumusunod:

  • FreeRTOS™ kernel: nagpapatupad ng real-time na operating system (RTOS), na idinisenyo para sa mga naka-embed na system.
  • Sigfox™: nagpapatupad ng Sigfox™ protocol library na sumusunod sa Sigfox™ protocol network at kasama ang RF test protocol library upang subukan laban sa RF Sigfox™ tool.
  • FatFS: nagpapatupad ng generic na FAT file module ng system.

Examples batay sa mga bahagi ng middleware
Ang bawat bahagi ng middleware ay may kasamang isa o higit pang examples, na tinatawag ding mga application, na nagpapakita kung paano ito gamitin. Pagsasama halampAng mga gumagamit na gumagamit ng ilang bahagi ng middleware ay ibinibigay din.

Tapos na ang firmware package ng STM32CubeWL3view

Mga sinusuportahang STM32WL3x na device at hardware
Nag-aalok ang STM32Cube ng isang mataas na portable na hardware abstraction layer (HAL) na binuo sa paligid ng isang generic na arkitektura. Binibigyang-daan nito ang prinsipyo ng build-upon layers, tulad ng paggamit ng middleware layer na ipatupad ang kanilang mga function nang hindi nalalaman, nang malalim, kung ano ang MCU na ginagamit. Pinapabuti nito ang muling paggamit ng code ng library at sinisigurado ang madaling pagdadala sa iba pang mga device.

  • Bilang karagdagan, kasama ang layered architecture nito, nag-aalok ang STM32CubeWL3 ng buong suporta para sa lahat ng linya ng produkto ng STM32WL3x.
  • Dapat lang tukuyin ng user ang tamang macro sa stm32wl3x.h.

Ipinapakita ng talahanayan 1 ang macro na tutukuyin depende sa STM32WL3x device line ng produkto na ginamit. Ang macro na ito ay dapat ding tukuyin sa compiler preprocessor.
Talahanayan 1. Mga Macro para sa linya ng produkto ng STM32WL3x

Tinukoy ng macro sa stm32wl3x.h STM32WL3x na mga device sa linya ng produkto
stm32wl33 STM32WL33xx microcontrollers

Nagtatampok ang STM32CubeWL3 ng isang rich set ng examples at application sa lahat ng antas, na ginagawang madaling maunawaan at gamitin ang anumang HAL driver o middleware na mga bahagi. Itong mga examptumatakbo sa mga STMicroelectronics board na nakalista sa Talahanayan 2.

Lupon Mga device na sinusuportahan ng STM32WL3x board
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

Ang STM32CubeWL3 MCU Package ay maaaring tumakbo sa anumang katugmang hardware. I-update lang ng mga user ang mga driver ng BSP para i-port ang ibinigay na examples sa kanilang mga board, kung ang mga ito ay may parehong mga tampok ng hardware (tulad ng mga LED o mga pindutan).

Tapos na ang firmware packageview
Ang solusyon sa STM32CubeWL3 MCU Package ay ibinibigay sa isang solong zip package na may istraktura na ipinapakita sa Figure 3.
Figure 3. STM32CubeWL3 firmware package structure

STM32WL3x-Software-Package (4)

Pag-iingat:

Hindi dapat baguhin ng user ang mga bahagi files. Maaari lamang i-edit ng user ang \Projects source.
Para sa bawat board, isang set ng exampAng les ay binibigyan ng mga paunang na-configure na proyekto para sa EWARM, MDK-ARM, at STM32CubeIDE na mga toolchain.
Ipinapakita ng Figure 4 ang istraktura ng proyekto para sa NUCLEO-WL33CCx boards. STM32WL3x-Software-Package (5)

Ang exampinuri ang mga ito depende sa antas ng STM32CubeWL3 kung saan sila nag-a-apply. Ang mga ito ay pinangalanan bilang mga sumusunod:

  • Antas 0 halamples ay tinatawag na Halamples, Halamples_LL, at Halamples_MIX. Gumagamit sila ayon sa pagkakabanggit ng mga driver ng HAL, mga driver ng LL, at isang halo ng mga driver ng HAL at LL nang walang anumang bahagi ng middleware. Demonstrasyon halampmagagamit din ang mga les.
  • Antas 1 halamples ay tinatawag na Applications. Nagbibigay ang mga ito ng karaniwang mga kaso ng paggamit ng bawat bahagi ng middleware.

Ang anumang application ng firmware para sa isang partikular na board ay maaaring mabilis na mabuo gamit ang mga proyektong template na magagamit sa mga direktoryo ng Templ at Templates_LL.

Examples, Halamples_LL, at Halamples_MIX ay may parehong istraktura:

  • \Inc folder na naglalaman ng lahat ng header files.
  • \Src folder na naglalaman ng source code.
  • \EWARM, \MDK-ARM, at \STM32CubeIDE na mga folder na naglalaman ng paunang na-configure na proyekto para sa bawat toolchain.
  • readme.md at readme.html na naglalarawan sa exampang pag-uugali at kinakailangang kapaligiran upang magawa ito.

Pagsisimula sa STM32CubeWL3

Tumatakbo sa isang unang example
Ipinapaliwanag ng seksyong ito kung gaano kadaling magpatakbo ng unang exampsa loob ng STM32CubeWL3. Ginagamit nito bilang isang paglalarawan ang pagbuo ng isang simpleng LED toggle na tumatakbo sa NUCLEO-WL33CC1 board:

  1. I-download ang STM32CubeWL3 MCU Package.
  2. I-unzip ito, o patakbuhin ang installer kung ibinigay, sa isang direktoryo na gusto mo.
  3. Siguraduhing hindi baguhin ang istraktura ng package na ipinapakita sa Figure 3. STM32CubeWL3 firmware package structure. Tandaan na inirerekomenda din na kopyahin ang package sa isang lokasyon na malapit sa root volume (ibig sabihin C:\ST o G:\Tests), dahil ang ilang IDE ay nakakaranas ng mga problema kapag ang landas ay masyadong mahaba.

Paano magpatakbo ng isang HAL example
Bago mag-load at magpatakbo ng example, mahigpit na inirerekomenda na basahin ang exampbasahin mo ako file para sa anumang partikular na pagsasaayos.

  1. Mag-browse sa \Projects\NUCLEO-WL33CC\Examples.
  2. Buksan ang \GPIO, pagkatapos ay \GPIO_EXTI folder.
  3. Buksan ang proyekto gamit ang gustong toolchain. Isang mabilis na paglipasview kung paano magbukas, bumuo, at magpatakbo ng exampAng kasama ang mga suportadong toolchain ay ibinigay sa ibaba.
  4. Buuin muli ang lahat files at i-load ang imahe sa target na memorya.
  5. Patakbuhin ang example. Para sa karagdagang detalye, sumangguni sa exampbasahin mo ako file.

Upang buksan, bumuo, at magpatakbo ng isang exampsa bawat isa sa mga sinusuportahang toolchain, sundin ang mga hakbang sa ibaba:

  • EWARM:
  1. Sa ilalim ng Examples folder, buksan ang \EWARM subfolder.
  2. Ilunsad ang Project.eww workspace (maaaring magbago ang pangalan ng workspace mula sa isang example sa iba).
  3. Buuin muli ang lahat files: [Proyekto]>[Buuin muli ang lahat].
  4. I-load ang larawan ng proyekto: [Proyekto]>[Debug].
  5. Patakbuhin ang program: [Debug]>[Go (F5)].
  • MDK-ARM:
  1. Sa ilalim ng Examples folder, buksan ang \MDK-ARM subfolder.
  2. Buksan ang Project.uvproj workspace (maaaring magbago ang pangalan ng workspace mula sa isang example sa iba).
  3. Buuin muli ang lahat files: [Proyekto]>[Buuin muli ang lahat ng target files]
  4. I-load ang larawan ng proyekto: [Debug]>[Start/Stop Debug Session].
  5. Patakbuhin ang program: [Debug]>[Run (F5)].
  • STM32CubeIDE:
  1. Buksan ang STM32CubeIDE toolchain.
  2. Mag-click sa [File]>[Lumipat ng Workspace]>[Iba pa] at mag-browse sa direktoryo ng STM32CubeIDE workspace.
  3. Mag-click sa [File]>[Import], piliin ang [General]>[Mga Umiiral na Proyekto sa Workspace], at pagkatapos ay i-click ang [Next].
  4. Mag-browse sa direktoryo ng STM32CubeIDE workspace at piliin ang proyekto.
  5. Muling itayo ang lahat ng proyekto files: Piliin ang proyekto sa window ng Project Explorer pagkatapos ay mag-click sa
    [Proyekto]> [Bumuo ng proyekto] menu.
  6.  Patakbuhin ang program: [Run]>[Debug (F11)].

Pagbuo ng custom na application

Gamit ang STM32CubeMX para bumuo o mag-update ng application
Sa STM32Cube MCU Package, halos lahat ng project exampAng mga les ay nabuo gamit ang tool na STM32CubeMX upang simulan ang system, peripheral, at middleware.

Ang direktang paggamit ng isang umiiral na proyekto halampAng mula sa tool na STM32CubeMX ay nangangailangan ng STM32CubeMX 6.12.0 o mas mataas:

  • Pagkatapos ng pag-install ng STM32CubeMX, buksan at kung kinakailangan i-update ang isang iminungkahing proyekto.
    Ang pinakasimpleng paraan upang buksan ang isang kasalukuyang proyekto ay ang pag-double click sa *.ioc file upang awtomatikong mabuksan ng STM32CubeMX ang proyekto at ang pinagmulan nito files. Binubuo ng STM32CubeMX ang initialization source code ng naturang mga proyekto.
  • Ang pangunahing application source code ay naglalaman ng mga komentong "USER CODE BEGIN" at "USER CODE END". Kung binago ang peripheral na pagpili at mga setting, ina-update ng STM32CubeMX ang bahagi ng pagsisimula ng code habang pinapanatili ang pangunahing source code ng application.

Upang bumuo ng custom na proyekto gamit ang STM32CubeMX, sundin ang hakbang-hakbang na proseso:

  1. I-configure ang lahat ng kinakailangang naka-embed na software gamit ang isang pinout-conflict solver, isang clock-tree setting helper, isang power consumption calculator, at ang utility na gumaganap ng MCU peripheral configuration (gaya ng GPIO o USART).
  2. Bumuo ng initialization C code batay sa napiling configuration. Ang code na ito ay handa nang gamitin sa loob ng ilang development environment. Ang user code ay pinananatili sa susunod na henerasyon ng code.
    Para sa higit pang impormasyon tungkol sa STM32CubeMX, sumangguni sa user manual na STM32CubeMX para sa STM32 configuration at initialization C code generation (UM1718).

Mga application ng driver

aplikasyon ng HAL
Inilalarawan ng seksyong ito ang mga hakbang na kinakailangan upang lumikha ng custom na HAL application gamit ang STM32CubeWL3:

  1. Gumawa ng proyekto
    Upang lumikha ng bagong proyekto, magsimula sa alinman sa proyektong Template na ibinigay para sa bawat board sa ilalim ng \Projects\< STM32xxx_yyy>\Templates o mula sa anumang available na proyekto sa ilalim ng \Projects\ \Halampl es o \Proyekto\ \Applications (kung saan tumutukoy sa pangalan ng board). Ang proyektong Template ay nagbibigay ng walang laman na pangunahing loop function. Gayunpaman, ito ay isang magandang panimulang punto upang maunawaan ang mga setting ng proyekto ng STM32CubeWL32. Ang template ay may mga sumusunod na katangian:
    • Naglalaman ito ng HAL source code, CMSIS, at mga driver ng BSP, na siyang pinakamababang hanay ng mga sangkap na kinakailangan upang bumuo ng isang code sa isang partikular na board.
    • Naglalaman ito ng mga kasamang landas para sa lahat ng mga bahagi ng firmware.
    • Tinutukoy nito ang mga sinusuportahang device na linya ng produkto ng STM32WL3x, na nagpapahintulot sa mga driver ng CMSIS at HAL na ma-configure nang tama.
    • Nagbibigay ito ng handa-gamitin na user files preconfigured tulad ng ipinapakita sa ibaba:
    • Sinimulan ang HAL gamit ang default na time base gamit ang Arm® core SysTick.
    • Ipinatupad ang SysTick ISR para sa layunin ng HAL_Delay().
      Tandaan: Kapag kumukopya ng kasalukuyang proyekto sa ibang lokasyon, tiyaking na-update ang lahat ng kasamang path.
  2. I-configure ang mga bahagi ng firmware
    Ang mga bahagi ng HAL at middleware ay nag-aalok ng isang set ng build-time na mga opsyon sa configuration gamit ang macros #define na idineklara sa isang header file. Isang configuration ng template file ay ibinibigay sa loob ng bawat bahagi, na dapat kopyahin sa folder ng proyekto (karaniwan ay ang configuration file ay pinangalanang xxx_conf_template.h, ang fragment na _template ay kailangang alisin kapag kinokopya ito sa folder ng proyekto). Ang pagsasaayos file nagbibigay ng sapat na impormasyon upang maunawaan ang epekto ng bawat opsyon sa pagsasaayos. Ang mas detalyadong impormasyon ay makukuha sa dokumentasyong ibinigay para sa bawat bahagi.
  3. Simulan ang library ng HAL
    Pagkatapos tumalon sa pangunahing programa, ang application code ay dapat tumawag sa HAL_Init() API upang simulan ang HAL library, na nagsasagawa ng mga sumusunod na gawain:
    • Configuration ng flash memory prefetch at SysTick interrupt priority (sa pamamagitan ng macros na tinukoy sa stm3 2wl3x_hal_conf.h).
    •  Configuration ng SysTick para makabuo ng interrupt bawat millisecond sa SysTick interrupt priority na TICK_INT_PRIO na tinukoy sa stm32wl3x_hal_conf.h.
    • Pagtatakda ng priority ng pangkat ng NVIC sa 0.
    • Tawag ng HAL_MspInit() callback function na tinukoy sa stm32wl3x_hal_msp.c user file upang magsagawa ng pandaigdigang mababang antas na pagsisimula ng hardware.
  4. I-configure ang system clock
    Ginagawa ang configuration ng system clock sa pamamagitan ng pagtawag sa dalawang API na inilarawan sa ibaba:
    • HAL_RCC_OscConfig(): kino-configure ng API na ito ang mga panloob at panlabas na oscillator. Pinipili ng user na i-configure ang isa o lahat ng oscillator.
    • HAL_RCC_ClockConfig(): kino-configure ng API na ito ang source clock ng system, ang latency ng flash memory, at ang mga prescaler ng AHB at APB.
  5. I-initialize ang peripheral
    •  Isulat muna ang peripheral initialization function. Magpatuloy tulad ng sumusunod:
    • Paganahin ang peripheral na orasan.
    • I-configure ang mga peripheral na GPIO.
    • I-configure ang DMA channel at paganahin ang DMA interrupt (kung kinakailangan).
    • Paganahin ang peripheral interrupt (kung kinakailangan).
    • I-edit ang stm32xxx_it.c para tawagan ang mga kinakailangang interrupt handler (peripheral at DMA), kung kinakailangan.
    •  Isulat ang proseso ng kumpletong callback function kung ang isang peripheral interrupt o DMA ay sinadya na gamitin.
    •  Sa pangunahing gumagamit.c file, simulan ang peripheral handle structure pagkatapos ay tawagan ang peripheral initialization function para masimulan ang peripheral.
  6. Bumuo ng isang aplikasyon
    Sa stage, handa na ang system at maaaring magsimula ang pagbuo ng user application code.
    Nagbibigay ang HAL ng intuitive at ready-to-use na mga API para i-configure ang peripheral. Sinusuportahan nito ang botohan, mga interrupts, at isang modelo ng programming ng DMA, upang matugunan ang anumang mga kinakailangan sa aplikasyon. Para sa higit pang mga detalye kung paano gamitin ang bawat peripheral, sumangguni sa rich exampAng set na ibinigay sa STM32CubeWL3 MCU Package.

Pag-iingat:
Sa default na pagpapatupad ng HAL, ang SysTick timer ay ginagamit bilang isang timebase: bumubuo ito ng mga interrupt sa mga regular na agwat ng oras. Kung ang HAL_Delay() ay tinawag mula sa peripheral na proseso ng ISR, siguraduhin na ang SysTick interrupt ay may mas mataas na priyoridad (numerically lower) kaysa sa peripheral interrupt. Kung hindi, ang proseso ng caller ISR ay
hinarangan. Ang mga function na nakakaapekto sa mga pagsasaayos ng timebase ay idineklara bilang __weak upang gawing posible ang pag-override sa kaso ng iba pang mga pagpapatupad sa user file (gamit ang general-purpose timer, para sa halample, o ibang mapagkukunan ng oras).
Para sa higit pang mga detalye, sumangguni sa HAL_TimeBase halample.

LL application
Inilalarawan ng seksyong ito ang mga hakbang na kailangan para gumawa ng custom na LL application gamit ang STM32CubeWL3.

  1. Gumawa ng proyekto
    Upang lumikha ng bagong proyekto, magsimula sa proyektong Templates_LL na ibinigay para sa bawat board sa ilalim ng \Projects\ \Templates_LL o mula sa anumang magagamit na proyekto sa ilalim ng \Projects\ \E xamples_LL ( ay tumutukoy sa pangalan ng board, tulad ng NUCLEO-WL32CC33).
    Ang proyekto ng template ay nagbibigay ng walang laman na pangunahing loop function, na isang magandang panimulang punto upang maunawaan ang mga setting ng proyekto para sa STM32CubeWL3. Ang mga pangunahing katangian ng template ay ang mga sumusunod:
    • Naglalaman ito ng mga source code ng mga driver ng LL at CMSIS, na kung saan ay ang pinakamababang hanay ng mga bahagi na kailangan upang bumuo ng code sa isang partikular na board.
    • Naglalaman ito ng mga kasamang landas para sa lahat ng kinakailangang bahagi ng firmware.
    • Pinipili nito ang sinusuportahang device ng linya ng produkto ng STM32WL3x at pinapayagan ang tamang configuration ng mga driver ng CMSIS at LL.
    • Nagbibigay ito ng user na handa nang gamitin files na paunang na-configure tulad ng sumusunod:
    • main.h: LED at USER_BUTTON definition abstraction layer.
    • main.c: System clock configuration para sa maximum frequency.
  2. I-port ang LL example:
    • Kopyahin/i-paste ang folder na Templates_LL – upang panatilihin ang paunang pinagmulan – o direktang i-update ang isang umiiral nang Templa tes_LL na proyekto.
    • Pagkatapos, ang porting ay pangunahing binubuo sa pagpapalit ng Templates_LL files ng Halamples_LL na naka-target na proyekto.
    • Panatilihin ang lahat ng partikular na bahagi ng board. Para sa mga dahilan ng kalinawan, ang mga partikular na bahagi ng board ay na-flag na may partikular tags:
      STM32WL3x-Software-Package (1)

Kaya, ang mga pangunahing hakbang sa pag-port ay ang mga sumusunod:

  • Palitan ang stm32wl3x_it.h file.
  • Palitan ang stm32wl3x_it.c file.
  • Palitan ang pangunahing.h file at i-update ito: Panatilihin ang kahulugan ng LED at user button ng LL template sa ilalim ng BOARD SPECIFIC CONFIGURATION tags.
  • Palitan ang pangunahing.c file at i-update ito:
  • Panatilihin ang configuration ng orasan ng SystemClock_Config() LL template function sa ilalim ng BOARD SPECIFIC CONFIGURATION tags.
  • Depende sa kahulugan ng LED, palitan ang bawat paglitaw ng LDx ng isa pang LDy na available sa file pangunahing.h.

Sa mga pagbabagong ito, ang exampTumatakbo si le sa target na board.

Mga RF application, demonstrasyon, at halamples
Iba't ibang uri ng RF application, demonstrasyon, at halampAng mga ito ay makukuha sa STM32CubeWL3 package. Nakalista ang mga ito sa dalawang seksyon sa ibaba.

Sub-GHz halamples at mga demonstrasyon
Itong mga exampAng mga ito ay nagpapakita ng mga pangunahing tampok ng MRSUBG at LPAWUR radio peripheral. Itong mga examples ay magagamit sa ilalim ng:

  • Mga Proyekto\NUCLEO-WL33CC\Examples\MRSUBG
  • Mga Proyekto\NUCLEO-WL33CC\Examples\LPAWUR
  • Projects\NUCLEO-WL33CC\Demonstrations\MRSUBG
  • Projects\NUCLEO-WL33CC\Demonstrations\LPAWUR

Bawat exampAng le o demonstration ay karaniwang binubuo ng dalawang programa na tinatawag na Tx at Rx na kumikilos bilang transmitter at receiver, ayon sa pagkakabanggit:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: isang pagpapatupad ng pisikal na layer na tinukoy ng karaniwang 802.15.4. Ipinapakita nito kung paano i-configure ang radyo upang magpadala o tumanggap ng 802.15.4 packet.
    • MRSUBG_BasicGeneric: Isang palitan ng STM32WL3x MR_SUBG na mga pangunahing packet.
    • MRSUBG_Chat: Isang simpleng application na nagpapakita kung paano gamitin ang Tx at Rx sa parehong device.
    • MRSUBG_DatabufferHandler: Isang exampna nagpapakita kung paano magpalit mula sa Databuffer 0 at 1.
    • MRSUBG_Sequencer AutoAck: Isang exampna awtomatikong nagpapadala at tumatanggap ng mga packet acknowledgement (ACKs).
    • MRSUBG_WMBusSTD: Isang pagpapalitan ng mga mensahe ng WM-Bus.
    • WakeupRadio: Isang example upang subukan ang LPAWUR radio peripheral.
  • Mga Demonstrasyon/MRSUBG
    • MRSUBG_RTC_Button_TX: Ang ex na itoampIpinapakita nito kung paano itakda ang SoC sa deep-stop mode at i-configure ang MRSUBG para gisingin ang SoC sa pamamagitan ng pagpindot sa PB2 para magpadala ng frame o pagkatapos ng pag-expire ng RTC timer.
    • MRSUBG_Sequencer_Sniff: Itong exampIpinapakita nito kung paano itakda ang MRSUBG sequencer upang gumana sa sniff mode. Itong exampIpinapakita ng le ang bahagi ng receiver at nangangailangan ng isa pang device bilang transmitter.
    • MRSUBG_Timer: Ang application ay nag-iskedyul ng ilang pagkakataon ng MRSUBG timer (na may autoreload) na may iba't ibang agwat ng oras.
    • MRSUBG_WakeupRadio_Tx: Itong exampIpinapaliwanag ni le kung paano itakda ang SoC sa deep stop mode at i-configure ang MRSUBG para gisingin ang SoC sa pamamagitan ng pagpindot sa PB2 para magpadala ng frame. Itong exampIpinapakita ng le ang panig ng transmitter at nangangailangan ng isa pang device bilang LPAWUR receiver. Ang receiver exampAng le ay matatagpuan sa ilalim ng NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx folder.
  • Mga Demonstrasyon/LPAWUR
    • LPAWUR_WakeupRadio_Rx: Itong exampIpinapaliwanag ni le kung paano itakda ang SoC sa deep-stop mode at i-configure ang LPAWUR para gisingin ang SoC kapag dumating ang isang frame at natanggap nang tama. Itong exampIpinapakita ng le ang bahagi ng receiver at nangangailangan ng isa pang device bilang transmitter. Ang transmiter exampAng le ay matatagpuan sa ilalim ng NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx folder.

Sigfox™ application
Ipinapakita ng mga application na ito kung paano magpatupad ng sitwasyong Sigfox™ at gamitin ang mga available na Sigfox™ API. Available ang mga ito sa path ng proyekto Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: Ipinapakita ng application na ito kung paano gumamit ng command-line interface (CLI) para magpadala ng mga command na gumagamit ng Sigfox™ protocol para magpadala ng mga mensahe at magsagawa ng mga precertification test.
  • Sigfox_PushButton: Ang application na ito ay nagbibigay-daan sa pagsusuri ng mga kakayahan ng radyo ng aparatong STM32WL33xx Sigfox™. Ang pagpindot sa PB1 ay nagpapadala ng isang pagsubok na Sigfox™ frame.

FAQ

  1. Kailan ko dapat gamitin ang HAL sa halip na mga driver ng LL?
    Ang mga driver ng HAL ay nag-aalok ng mga high-level at function-oriented na API, na may mataas na antas ng portability. Nakatago ang produkto o peripheral complexity para sa mga end user.
    Nag-aalok ang mga driver ng LL ng mababang-layer na antas ng rehistro ng mga API, na may mas mahusay na pag-optimize ngunit hindi gaanong portable. Nangangailangan sila ng malalim na kaalaman sa mga detalye ng produkto o IP.
  2. Maaari bang gamitin ang mga driver ng HAL at LL nang magkasama? Kung oo, ano ang mga hadlang?
    Posibleng gamitin ang parehong mga driver ng HAL at LL. Gamitin ang HAL para sa peripheral initialization phase at pagkatapos ay pamahalaan ang I/O operations gamit ang LL drivers.
    Ang pangunahing pagkakaiba sa pagitan ng HAL at LL ay ang mga driver ng HAL ay nangangailangan na lumikha at gumamit ng mga handle para sa pamamahala ng operasyon habang ang mga driver ng LL ay direktang gumagana sa mga peripheral na rehistro. Ang paghahalo ng HAL at LL ay inilalarawan sa Halamples_MIX halamples.
  3. Paano pinagana ang mga LL initialization API?
    Ang kahulugan ng mga LL initialization API at nauugnay na mapagkukunan (mga istruktura, literal, at prototype) ay kinokondisyon ng USE_FULL_LL_DRIVER compilation switch.
    Upang magamit ang mga LL initialization API, idagdag ang switch na ito sa toolchain compiler preprocessor.
  4. Mayroon bang anumang template na proyekto para sa MRSUBG/LPAWUR peripheral examples?
    Para gumawa ng bagong MRSUBG o LPAWUR exampang proyekto, maaaring magsimula sa skeleton project na ibinigay sa ilalim ng \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG o \Projects\NUCLEO-WL33CC\Examples\LPAWUR, o mula sa anumang magagamit na proyekto sa ilalim ng parehong mga direktoryo na ito.
  5. Paano makakabuo ng code ang STM32CubeMX batay sa naka-embed na software?
    Ang STM32CubeMX ay may built-in na kaalaman sa mga STM32 microcontroller, kasama ang kanilang mga peripheral at software, na nagbibigay-daan dito na magbigay ng graphical na representasyon sa user at makabuo ng *.h o *.c files batay sa configuration ng user.

Kasaysayan ng rebisyon

Talahanayan 3. Kasaysayan ng rebisyon ng dokumento

Petsa Rebisyon Mga pagbabago
29-Mar-2024 1 Paunang paglabas.
30-Okt-2024 2 Buong pagsasama ng STM32CubeWL3 in STM32Cube. Na-update:

Inalis:

  • Mga tool sa PC, kasama ang Navigator, STM32WL3 GUI, at MR-SUBG Sequencer GUI
  • Paano makakabuo ang WiSE-Studio IOMapper ng code batay sa naka-embed na software?
  • Pinapayagan ba ng Navigator ang pag-access sa mga mapagkukunan ng software package?

Mga Dokumento / Mga Mapagkukunan

ST STM32WL3x Software Package [pdf] Mga tagubilin
STM32WL3x Software Package, STM32WL3x, Software Package, Package

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *