Kifurushi cha Programu cha STM32WL3x
Vipimo
- Jina la Bidhaa: Mfuko wa programu wa STM32CubeWL3
- Utangamano: vidhibiti vidogo vya STM32WL3x
- Sifa Kuu:
- API za safu ya chini (LL) na safu ya uondoaji ya maunzi (HAL).
- SigfoxTM, FatFS, na vipengee vya kati vya kernel ya FreeRTOSTM
- Maombi na maonyesho
Maagizo ya Matumizi ya Bidhaa
Kuanza
Ili kuanza kutumia kifurushi cha programu cha STM32CubeWL3, fuata hatua hizi:
- Pakua kifurushi cha programu kutoka kwa afisa webtovuti.
- Sakinisha mazingira muhimu ya uendelezaji (kwa mfano, STM32CubeIDE, EWARM, MDK-ARM).
- Rejea wa zamaniamples na maombi yaliyotolewa kwa mwongozo.
Usanifu wa STM32CubeWL3 Umekwishaview
Kifurushi cha programu cha STM32CubeWL3 kimejengwa karibu na viwango vitatu kuu
- Kiwango cha 0: Safu ya uondoaji wa vifaa (HAL) na viendeshaji vya BSP.
- Kiwango cha 1: Programu, maktaba, na vipengele vinavyotegemea itifaki.
Maswali Yanayoulizwa Mara Kwa Mara (FAQ)
Swali: Je, ni sifa gani kuu za kifurushi cha programu cha STM32CubeWL3?
A: Sifa kuu ni pamoja na safu ya chini na API za HAL, vifaa vya kati kama SigfoxTM, FatFS, FreeRTOSTM kernel, programu na maonyesho.
Utangulizi
STM32Cube ni mpango asilia wa STMicroelectronics ili kuboresha tija ya wabunifu kwa kiasi kikubwa kwa kupunguza juhudi za maendeleo, wakati na gharama. STM32Cube inashughulikia kwingineko yote ya STM32.
STM32Cube inajumuisha:
- Seti ya zana za ukuzaji programu zinazofaa kwa mtumiaji kushughulikia maendeleo ya mradi kutoka kwa utungaji hadi utimilifu, miongoni mwa] hizo ni:
- STM32CubeMX, zana ya usanidi wa programu ya picha ambayo inaruhusu kizazi kiotomatiki cha msimbo wa uanzishaji wa C kwa kutumia wachawi wa picha.
- STM32CubeIDE, zana ya ukuzaji ya kila moja na usanidi wa pembeni, utengenezaji wa nambari, ujumuishaji wa nambari na huduma za utatuzi.
- STM32CubeCLT, zana ya ukuzaji ya mstari wa amri ya kila moja na mkusanyiko wa nambari, upangaji wa programu na vipengele vya utatuzi.
- STM32CubeProgrammer (STM32CubeProg), chombo cha programu kinachopatikana katika matoleo ya picha na mstari wa amri.
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), zana zenye nguvu za ufuatiliaji ili kurekebisha tabia na utendaji wa programu za STM32 kwa wakati halisi.
- Vifurushi vya STM32Cube MCU na MPU, majukwaa ya kina ya programu iliyopachikwa mahususi kwa kila kidhibiti kidogo na mfululizo wa microprocessor (kama vile STM32CubeWL3 ya laini ya bidhaa ya STM32WL3x), ambayo ni pamoja na:
- Safu ya uondoaji ya maunzi ya STM32Cube (HAL), inayohakikisha utumiaji ulioboreshwa katika kwingineko ya STM32
- API za tabaka la chini za STM32Cube, kuhakikisha utendakazi bora na nyayo zenye kiwango cha juu cha udhibiti wa mtumiaji juu ya] maunzi.
- Seti thabiti ya vifaa vya kati kama vile FreeRTOS™ kernel, FatFS, na Sigfox™.
- Huduma zote za programu zilizopachikwa zilizo na seti kamili za zamani za pembeni na zinazotumikaampchini
- Vifurushi vya Upanuzi vya STM32Cube, ambavyo vina vipengele vya programu vilivyopachikwa ambavyo vinakamilisha utendakazi wa STM32Cube MCU na Vifurushi vya MPU vilivyo na:
-
- Upanuzi wa vifaa vya kati na tabaka zinazotumika
- Exampinaendeshwa kwenye baadhi ya bodi maalum za ukuzaji za STMicroelectronics
Mwongozo huu wa mtumiaji unaeleza jinsi ya kuanza kutumia Kifurushi cha STM32CubeWL3 MCU.
Sehemu ya 2 inaelezea sifa kuu za STM32CubeWL3 na Sehemu ya 3 inatoa nyongezaview ya usanifu wake na muundo wa Kifurushi cha MCU.
Taarifa za jumla
STM32CubeWL3 huendesha programu za maonyesho ya GHz ndogo, ikijumuisha jozi za Sigfox™, kwenye vidhibiti vidogo vya laini ya bidhaa vya STM32WL3x kulingana na kichakataji cha Arm® Cortex®‑M0+.
Vidhibiti vidogo vya STM32WL3x vilipachika kidhibiti cha kisasa cha STMicroelectronics kinachotii GHz sub-GHz, kilichoboreshwa kwa matumizi ya nishati ya chini na utendakazi bora wa redio, kwa maisha ya betri yasiyo na kifani.
Kumbuka: Arm ni chapa ya biashara iliyosajiliwa ya Arm Limited (au kampuni zake tanzu) nchini Marekani na/au kwingineko.
Vipengele kuu vya STM32CubeWL3
- Kifurushi cha STM32CubeWL3 MCU kinatumia vidhibiti vidogo vya STM32 32-bit kulingana na kichakataji cha Arm® Cortex®‑M0+. Inakusanya, katika kifurushi kimoja, vipengele vyote vya programu vilivyopachikwa kwa ujumla vinavyohitajika ili kuunda programu kwa ajili ya vidhibiti vidogo vya mstari wa bidhaa vya STM32WL3x.
- Kifurushi hiki ni pamoja na API za safu ya chini (LL) na safu ya uondoaji ya maunzi (HAL) ambayo inashughulikia maunzi ya udhibiti mdogo, pamoja na seti kubwa ya zamani.amples inayoendesha kwenye bodi za STMicroelectronics. API za HAL na LL zinapatikana katika leseni ya BSD ya chanzo huria kwa urahisi wa mtumiaji. Pia inajumuisha vipengele vya Sigfox™, FatFS, na FreeRTOS™ kernel middleware.
- Kifurushi cha STM32CubeWL3 MCU pia hutoa matumizi na maonyesho kadhaa yanayotekeleza vijenzi vyake vyote vya kati.
- Mpangilio wa sehemu ya Kifurushi cha STM32CubeWL3 MCU umeonyeshwa kwenye Mchoro 1.
Kielelezo 1. Vipengele vya Ufungaji vya STM32CubeWL3 MCU
Usanifu wa STM32CubeWL3 juuview
Suluhisho la Kifurushi cha STM32CubeWL3 MCU limejengwa karibu na viwango vitatu huru ambavyo vinaingiliana kwa urahisi kama ilivyoelezwa kwenye Mchoro 2. Kiwango cha 0
Kiwango hiki kimegawanywa katika sublayers tatu:
- Kifurushi cha usaidizi wa bodi (BSP).
- Safu ya uondoaji wa maunzi (HAL):
- HAL madereva wa pembeni
- Madereva ya safu ya chini
- Matumizi ya msingi ya pembeni kwa mfanoampchini.
Mfuko wa msaada wa bodi (BSP)
Safu hii inatoa seti ya API zinazohusiana na vijenzi vya maunzi kwenye mbao za maunzi (kama vile LED, vitufe, na viendeshi vya COM). Inaundwa na sehemu mbili:
- Kipengele:
Huyu ndiye dereva anayehusiana na kifaa cha nje kwenye ubao na sio kwa STM32. Dereva wa kijenzi hutoa API maalum kwa vipengee vya nje vya kiendesha BSP na inaweza kubebeka kwenye ubao mwingine wowote. - Dereva wa BSP:
Inaruhusu kuunganisha viendeshi vya sehemu kwenye ubao maalum na hutoa seti ya API zinazofaa mtumiaji. Kanuni ya kumtaja API ni BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP inategemea usanifu wa kawaida unaoruhusu uhamishaji rahisi kwenye maunzi yoyote kwa kutekeleza tu taratibu za kiwango cha chini.
Safu ya uondoaji wa maunzi (HAL) na safu ya chini (LL)
STM32CubeWL3 HAL na LL zinakamilishana na zinashughulikia mahitaji mbalimbali ya maombi:
- Viendeshi vya HAL hutoa API zinazobebeka sana zenye mwelekeo wa utendakazi. Wanaficha MCU na utata wa pembeni kwa mtumiaji wa mwisho.
Viendeshi vya HAL hutoa API za kawaida zenye mwelekeo wa vipengele vingi, ambazo hurahisisha utekelezaji wa programu ya mtumiaji kwa kutoa michakato iliyo tayari kutumika. Kwa mfanoample, kwa viambajengo vya mawasiliano (I2C, UART, na vingine), hutoa API zinazoruhusu kuanzisha na kusanidi eneo la pembeni, kudhibiti uhamishaji wa data kulingana na upigaji kura, kukatiza au mchakato wa DMA, na kushughulikia hitilafu za mawasiliano zinazoweza kutokea wakati wa mawasiliano. API za dereva za HAL zimegawanywa katika vikundi viwili:
- API za Jumla, ambazo hutoa utendaji wa kawaida na wa kawaida kwa vidhibiti vidogo vya mfululizo wa STM32.
- API za Viendelezi, ambazo hutoa utendaji mahususi na uliobinafsishwa kwa familia mahususi au nambari mahususi ya sehemu.
- API za safu ya chini hutoa API za kiwango cha chini katika kiwango cha rejista, na uboreshaji bora lakini uwezo mdogo wa kubebeka. Zinahitaji ufahamu wa kina wa MCU na maelezo ya pembeni.
Viendeshi vya LL vimeundwa ili kutoa safu ya haraka nyepesi inayoelekezwa na mtaalam ambayo iko karibu na maunzi kuliko HAL. Kinyume na HAL, API za LL hazijatolewa kwa vifaa vya pembeni ambapo ufikiaji ulioboreshwa sio kipengele muhimu, au kwa zile zinazohitaji usanidi wa programu nzito au rafu tata ya kiwango cha juu.
Vipengele vya viendeshi vya LL:
- Seti ya chaguo za kukokotoa za kuanzisha vipengele vikuu vya pembeni kulingana na vigezo vilivyobainishwa katika miundo ya data.
- Seti ya chaguo za kukokotoa za kujaza miundo ya data ya uanzishaji na thamani za kuweka upya zinazolingana na kila sehemu.
- Utendakazi wa uondoaji wa uanzishaji wa pembeni (rejista za pembeni zimerejeshwa kwa thamani zao msingi).
- Seti ya vitendaji vya ndani vya ufikiaji wa rejista ya moja kwa moja na ya atomiki.
- Uhuru kamili kutoka kwa HAL na uwezo wa kutumika katika hali ya pekee (bila viendeshi vya HAL).
- Chanjo kamili ya vipengele vya pembeni vinavyotumika.
Matumizi ya msingi ya pembeni kwa mfanoampchini
Safu hii inafunga examples iliyojengwa juu ya vifaa vya pembeni vya STM32 kwa kutumia rasilimali za HAL na BSP pekee.
Maandamano examples pia zinapatikana ili kuonyesha zamani ngumu zaidiample matukio yenye viambata maalum, kama vile MRSUBG na LPAWUR.
Kiwango cha 1
Kiwango hiki kimegawanywa katika sublayers mbili:
- Vipengele vya kati
- Examples kulingana na vifaa vya kati
Vipengele vya kati
Programu ya kati ni seti ya maktaba zinazofunika kokwa ya FreeRTOS™, FatFS, na maktaba ya itifaki ya Sigfox™. Mwingiliano mlalo kati ya vijenzi vya safu hii hufanywa kwa kupiga simu API zilizoangaziwa.
Mwingiliano wa wima na viendeshi vya safu ya chini hufanywa kupitia simu mahususi na makro tuli zinazotekelezwa katika kiolesura cha simu cha mfumo wa maktaba.
Sifa kuu za kila sehemu ya vifaa vya kati ni kama ifuatavyo.
- FreeRTOS™ kernel: hutumia mfumo wa uendeshaji wa wakati halisi (RTOS), iliyoundwa kwa ajili ya mifumo iliyopachikwa.
- Sigfox™: hutekeleza maktaba ya itifaki ya Sigfox™ inayotii mtandao wa itifaki ya Sigfox™ na inajumuisha maktaba ya itifaki ya majaribio ya RF ili kujaribu dhidi ya zana za RF Sigfox™.
- FatFS: hutumia FAT ya jumla file moduli ya mfumo.
Examples kulingana na vifaa vya kati
Kila sehemu ya vifaa vya kati huja na ex mmoja au zaidiamples, pia huitwa maombi, kuonyesha jinsi ya kuitumia. Ujumuishaji examples zinazotumia vipengele kadhaa vya middleware hutolewa pia.
Kifurushi cha programu dhibiti cha STM32CubeWL3 kimekwishaview
Vifaa na maunzi vinavyotumika vya STM32WL3x
STM32Cube inatoa safu ya uondoaji ya maunzi inayobebeka sana (HAL) iliyojengwa karibu na usanifu wa kawaida. Inaruhusu kanuni ya kujenga-juu ya tabaka, kama vile kutumia safu ya vifaa vya kati kutekeleza majukumu yao bila kujua, kwa kina, ni MCU gani inatumika. Hii inaboresha utumiaji wa msimbo wa maktaba na inahakikisha urahisi wa kubebeka kwa vifaa vingine.
- Kwa kuongeza, pamoja na usanifu wake wa tabaka, STM32CubeWL3 inatoa msaada kamili kwa mstari wa bidhaa zote za STM32WL3x.
- Mtumiaji lazima afafanue makro sahihi pekee katika stm32wl3x.h.
Jedwali la 1 linaonyesha jumla ya kufafanua kulingana na kifaa cha laini cha bidhaa cha STM32WL3x kinachotumika. Macro hii lazima pia ifafanuliwe katika kichakataji cha mkusanyaji.
Jedwali 1. Macros kwa mstari wa bidhaa wa STM32WL3x
Macro imefafanuliwa ndani stm32wl3x.h | Vifaa vya mstari wa bidhaa STM32WL3x |
STM32wl33 | Vidhibiti vidogo vya STM32WL33xx |
STM32CubeWL3 ina seti tajiri ya examples na matumizi katika viwango vyote, na kurahisisha kuelewa na kutumia kiendeshi chochote cha HAL au vifaa vya kati. Hawa wa zamaniamples kukimbia kwenye bodi za STMicroelectronics zilizoorodheshwa kwenye Jedwali la 2.
Bodi | Vifaa vinavyotumika kwenye bodi ya STM32WL3x |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
Kifurushi cha STM32CubeWL3 MCU kinaweza kufanya kazi kwenye maunzi yoyote yanayotangamana. Watumiaji husasisha viendeshaji vya BSP ili kusambaza toleo la zamani lililotolewaamples kwenye bodi zao, ikiwa hizi zina vipengele sawa vya maunzi (kama vile LEDs au vifungo).
Kifurushi cha firmware kimekwishaview
Suluhisho la Kifurushi cha STM32CubeWL3 MCU hutolewa katika kifurushi kimoja cha zipu chenye muundo ulioonyeshwa kwenye Mchoro 3.
Kielelezo 3. Muundo wa mfuko wa firmware STM32CubeWL3
Tahadhari:
Mtumiaji lazima asirekebishe vipengele files. Mtumiaji anaweza tu kuhariri vyanzo vya \Projects.
Kwa kila ubao, seti ya examples imetolewa na miradi iliyosanidiwa awali ya minyororo ya zana ya EWARM, MDK-ARM, na STM32CubeIDE.
Mchoro wa 4 unaonyesha muundo wa mradi wa bodi za NUCLEO-WL33CCx.
Examples zimeainishwa kulingana na kiwango cha STM32CubeWL3 ambacho zinatumika. Wanaitwa kama ifuatavyo:
- Kiwango cha 0 kwa mfanoamples zinaitwa Examphii, Kutamples_LL, na Kutampchini_MIX. Wanatumia viendeshi vya HAL, viendeshi vya LL, na mchanganyiko wa viendeshi vya HAL na LL bila kijenzi chochote cha vifaa vya kati. Maandamano examples zinapatikana pia.
- Kiwango cha 1 kwa mfanoamples zinaitwa Applications. Wanatoa kesi za kawaida za matumizi ya kila sehemu ya kati.
Programu dhibiti yoyote ya ubao fulani inaweza kujengwa kwa haraka kwa kutumia miradi ya violezo inayopatikana katika saraka za Templ ates na Templates_LL.
Examphii, Kutamples_LL, na Kutamples_MIX zina muundo sawa:
- \Inc folda iliyo na vichwa vyote files.
- \ Src folda iliyo na msimbo wa chanzo.
- \EWARM, \MDK-ARM, na \STM32CubeIDE folda zilizo na mradi uliosanidiwa awali kwa kila msururu wa zana.
- readme.md na readme.html inayoelezea examptabia na mazingira yanayohitajika ili kuifanya ifanye kazi.
Kuanza na STM32CubeWL3
Kukimbia ex wa kwanzaample
Sehemu hii inaelezea jinsi ilivyo rahisi kuendesha ex wa kwanzaampndani ya STM32CubeWL3. Inatumia kama kielelezo kizazi cha kigeuza rahisi cha LED kinachoendesha kwenye ubao wa NUCLEO-WL33CC1:
- Pakua Kifurushi cha STM32CubeWL3 MCU.
- Ifungue, au endesha kisakinishi ikiwa kimetolewa, kwenye saraka ya chaguo lako.
- Hakikisha kuwa haubadilishi muundo wa kifurushi ulioonyeshwa kwenye Mchoro 3. Muundo wa kifurushi cha programu dhibiti cha STM32CubeWL3. Kumbuka kwamba inashauriwa pia kunakili kifurushi mahali karibu na kiasi cha mzizi (maana yake C:\ST au G:\Majaribio), kwani baadhi ya vitambulisho hupata matatizo wakati njia ni ndefu sana.
Jinsi ya kuendesha HAL example
Kabla ya kupakia na kuendesha example, inashauriwa sana kusoma exampnisome mimi file kwa usanidi wowote maalum.
- Vinjari hadi \Projects\NUCLEO-WL33CC\Exampchini.
- Fungua \GPIO, kisha \GPIO_EXTI folda.
- Fungua mradi na mnyororo wa zana unaopendelea. Haraka juuview jinsi ya kufungua, kujenga, na kuendesha example iliyo na minyororo ya zana inayotumika imepewa hapa chini.
- Kujenga upya wote files na upakie picha kwenye kumbukumbu inayolengwa.
- Endesha zamaniample. Kwa maelezo zaidi, rejelea exampnisome mimi file.
Ili kufungua, kujenga, na kuendesha exampna kila moja ya minyororo ya zana inayotumika, fuata hatua zifuatazo:
- EWARM:
- Chini ya Examples folda, fungua folda ndogo ya \EWARM.
- Zindua nafasi ya kazi ya Project.eww (jina la nafasi ya kazi linaweza kubadilika kutoka kwa mmoja wa zamaniample kwa mwingine).
- Kujenga upya wote files: [Mradi]>[Jenga upya zote].
- Pakia picha ya mradi: [Mradi]>[Tatua].
- Endesha programu: [Tatua]>[Nenda (F5)].
- MDK-ARM:
- Chini ya Examples folda, fungua folda ndogo ya \MDK-ARM.
- Fungua nafasi ya kazi ya Project.uvproj (jina la nafasi ya kazi linaweza kubadilika kutoka kwa mmoja wa zamaniample kwa mwingine).
- Kujenga upya wote files: [Mradi]>[Jenga upya shabaha zote files].
- Pakia picha ya mradi: [Tatua]>[Anza/Sitisha Kipindi cha Utatuzi].
- Endesha programu: [Debug]>[Run (F5)].
- STM32CubeIDE:
- Fungua mnyororo wa zana wa STM32CubeIDE.
- Bonyeza [File]>[Badilisha Nafasi ya Kazi]>[Nyingine] na uvinjari kwenye saraka ya nafasi ya kazi ya STM32CubeIDE.
- Bonyeza [File]>[Leta], chagua [Jumla]>[Miradi Iliyopo kwenye Nafasi ya Kazi], kisha ubofye [Inayofuata].
- Vinjari kwenye saraka ya nafasi ya kazi ya STM32CubeIDE na uchague mradi huo.
- Jenga upya mradi wote files: Chagua mradi katika dirisha la Mtafiti wa Mradi kisha ubofye kwenye
[Mradi]>[Jenga mradi] menyu. - Endesha programu: [Endesha]> [Tatua (F11)].
Kuendeleza programu maalum
Kwa kutumia STM32CubeMX kutengeneza au kusasisha programu
Katika Kifurushi cha STM32Cube MCU, karibu mradi wote wa zamaniamples huzalishwa kwa zana ya STM32CubeMX ili kuanzisha mfumo, vifaa vya pembeni, na vifaa vya kati.
Matumizi ya moja kwa moja ya mradi uliopo zamaniample kutoka kwa zana ya STM32CubeMX inahitaji STM32CubeMX 6.12.0 au toleo jipya zaidi:
- Baada ya usakinishaji wa STM32CubeMX, fungua na ikibidi usasishe mradi uliopendekezwa.
Njia rahisi zaidi ya kufungua mradi uliopo ni kubofya mara mbili kwenye *.ioc file ili STM32CubeMX ifungue mradi na chanzo chake kiotomatiki files. STM32CubeMX hutoa msimbo wa chanzo cha uanzishaji wa miradi kama hii. - Msimbo mkuu wa chanzo cha programu unapatikana na maoni "MSIMBO WA MTUMIAJI ANZA" na "MSIMBO WA MTUMIAJI MWISHO". Ikiwa uteuzi na mipangilio ya pembeni itarekebishwa, STM32CubeMX husasisha sehemu ya uanzishaji ya msimbo huku ikihifadhi msimbo mkuu wa chanzo cha programu.
Ili kuunda mradi maalum na STM32CubeMX, fuata mchakato wa hatua kwa hatua:
- Sanidi programu zote zilizopachikwa zinazohitajika kwa kutumia kisuluhishi cha mzozo wa pinout, kisaidizi cha mpangilio wa mti wa saa, kikokotoo cha matumizi ya nishati, na shirika linalotekeleza usanidi wa pembeni wa MCU (kama vile GPIO au USART).
- Tengeneza msimbo C wa uanzishaji kulingana na usanidi uliochaguliwa. Nambari hii iko tayari kutumika ndani ya mazingira kadhaa ya ukuzaji. Msimbo wa mtumiaji huwekwa katika kizazi kijacho cha msimbo.
Kwa maelezo zaidi kuhusu STM32CubeMX, rejelea mwongozo wa mtumiaji STM32CubeMX kwa usanidi wa STM32 na uanzishaji wa kuunda msimbo wa C (UM1718).
Maombi ya madereva
Programu ya HAL
Sehemu hii inaelezea hatua zinazohitajika ili kuunda programu maalum ya HAL kwa kutumia STM32CubeWL3:
- Unda mradi
Ili kuunda mradi mpya, anza kutoka kwa mradi wa Kiolezo uliotolewa kwa kila ubao chini ya \Projects\< STM32xxx_yyy>\Templates au kutoka kwa mradi wowote unaopatikana chini ya \Projects\ \Kutampl es au \Miradi\ \Maombi (wapi inarejelea jina la bodi). Mradi wa Kiolezo hutoa kazi kuu tupu ya kitanzi. Hata hivyo, ni sehemu nzuri ya kuanzia kuelewa mipangilio ya mradi wa STM32CubeWL32. Template ina sifa zifuatazo:- Ina msimbo wa chanzo wa HAL, CMSIS, na viendeshaji vya BSP, ambazo ni seti ya chini kabisa ya vipengele vinavyohitajika kuunda msimbo kwenye ubao fulani.
- Ina njia zilizojumuishwa za vipengele vyote vya firmware.
- Inafafanua vifaa vya laini vya bidhaa vya STM32WL3x vinavyotumika, kuruhusu viendeshaji vya CMSIS na HAL kusanidiwa ipasavyo.
- Inatoa mtumiaji aliye tayari kutumia fileimeandaliwa kama inavyoonyeshwa hapa chini:
- HAL ilianzishwa kwa msingi wa saa chaguo-msingi kwa kutumia Arm® core SysTick.
- SysTick ISR imetekelezwa kwa madhumuni ya HAL_Delay().
Kumbuka: Unaponakili mradi uliopo kwenye eneo lingine, hakikisha kuwa njia zote zilizojumuishwa zimesasishwa.
- Sanidi vipengele vya firmware
Vipengele vya HAL na vifaa vya kati vinatoa seti ya chaguzi za usanidi wa wakati wa kujenga kwa kutumia macros #define iliyotangazwa kwenye kichwa. file. Mpangilio wa kiolezo file hutolewa ndani ya kila sehemu, ambayo lazima inakiliwa kwenye folda ya mradi (kawaida usanidi file inaitwa xxx_conf_template.h, kipande cha _template kinahitaji kuondolewa wakati wa kukinakili kwenye folda ya mradi). Usanidi file hutoa maelezo ya kutosha kuelewa athari ya kila chaguo la usanidi. Maelezo ya kina zaidi yanapatikana katika nyaraka zinazotolewa kwa kila sehemu. - Anzisha maktaba ya HAL
Baada ya kuruka kwa programu kuu, nambari ya maombi lazima ipigie HAL_Init() API ili kuanzisha maktaba ya HAL, ambayo hufanya kazi zifuatazo:- Usanidi wa uletaji awali wa kumbukumbu ya mmweko na kipaumbele cha kukatiza SysTick (kupitia makros iliyofafanuliwa katika stm3 2wl3x_hal_conf.h).
- Usanidi wa SysTick ili kutoa usumbufu kila sekunde kwa kipaumbele cha kukatiza kwa SysTick TICK_INT_PRIO kilichofafanuliwa katika stm32wl3x_hal_conf.h.
- Kuweka kipaumbele cha kikundi cha NVIC kuwa 0.
- Simu ya HAL_MspInit() kitendakazi cha kurudi nyuma kimefafanuliwa katika mtumiaji wa stm32wl3x_hal_msp.c file kutekeleza uanzilishi wa maunzi wa kiwango cha chini duniani.
- Sanidi saa ya mfumo
Usanidi wa saa ya mfumo unafanywa kwa kupiga simu API mbili zilizoelezewa hapa chini:- HAL_RCC_OscConfig(): API hii inasanidi vihisishi vya ndani na nje. Mtumiaji anachagua kusanidi oscillator moja au zote.
- HAL_RCC_ClockConfig(): API hii inasanidi chanzo cha saa ya mfumo, ukawiaji wa kumbukumbu ya mweko, na viboreshaji vya awali vya AHB na APB.
- Anzisha pembeni
- Kwanza andika kitendakazi cha uanzishaji wa pembeni. Endelea kama ifuatavyo:
- Washa saa ya pembeni.
- Sanidi GPIO za pembeni.
- Sanidi kituo cha DMA na uwashe ukatizaji wa DMA (ikihitajika).
- Washa ukatizaji wa pembeni (ikiwa inahitajika).
- Hariri stm32xxx_it.c ili kupiga simu vidhibiti vinavyohitajika (vya pembeni na DMA), ikihitajika.
- Andika mchakato wa utendakazi kamili wa urejeshaji simu ikiwa ukatizaji wa pembeni au DMA inakusudiwa kutumiwa.
- Katika kuu ya mtumiaji.c file, anzisha muundo wa kishikio cha pembeni kisha upige simu kitendakazi cha uanzishaji cha pembeni ili kuanzisha cha pembeni.
- Tengeneza programu
Katika stage, mfumo uko tayari na uundaji wa msimbo wa programu ya mtumiaji unaweza kuanza.
HAL hutoa API angavu na tayari kutumia ili kusanidi pembeni. Inaauni upigaji kura, kukatizwa, na muundo wa programu wa DMA, ili kukidhi mahitaji yoyote ya programu. Kwa maelezo zaidi kuhusu jinsi ya kutumia kila pembeni, rejelea tajiri wa zamaniample seti iliyotolewa kwenye Kifurushi cha STM32CubeWL3 MCU.
Tahadhari:
Katika utekelezaji chaguo-msingi wa HAL, kipima saa cha SysTick kinatumika kama msingi wa saa: hutoa ukatizaji kwa vipindi vya muda vya kawaida. Ikiwa HAL_Delay() inaitwa kutoka kwa mchakato wa ISR ya pembeni, hakikisha kuwa ukatizaji wa SysTick una kipaumbele cha juu (idadi ya chini) kuliko ukatizaji wa pembeni. Vinginevyo, mchakato wa ISR wa mpigaji ni
imezuiwa. Kazi zinazoathiri usanidi wa msingi wa saa zinatangazwa kuwa __dhaifu ili kufanya ubatilishaji uwezekane endapo kuna utekelezaji mwingine katika mtumiaji. file (kwa kutumia kipima muda cha madhumuni ya jumla, kwa mfanoample, au chanzo kingine cha wakati).
Kwa maelezo zaidi, rejelea HAL_TimeBase example.
LL maombi
Sehemu hii inaeleza hatua zinazohitajika ili kuunda programu maalum ya LL kwa kutumia STM32CubeWL3.
- Unda mradi
Ili kuunda mradi mpya, ama anza kutoka kwa mradi wa Templates_LL uliotolewa kwa kila ubao chini ya \Projects\ \Templates_LL au kutoka kwa mradi wowote unaopatikana chini ya \Projects\ \E xampchini_LL ( inarejelea jina la bodi, kama vile NUCLEO-WL32CC33).
Mradi wa kiolezo hutoa kazi tupu ya kitanzi kuu, ambayo ni sehemu nzuri ya kuanzia kuelewa mipangilio ya mradi kwa STM32CubeWL3. Tabia kuu za template ni zifuatazo:- Ina misimbo ya chanzo ya viendeshi vya LL na CMSIS, ambazo ni seti ya chini kabisa ya vipengele vinavyohitajika kuunda msimbo kwenye ubao fulani.
- Ina njia zilizojumuishwa za vipengele vyote vya firmware vinavyohitajika.
- Inachagua kifaa cha laini cha bidhaa cha STM32WL3x kinachotumika na inaruhusu usanidi sahihi wa viendeshi vya CMSIS na LL.
- Inatoa mtumiaji aliye tayari kutumia fileambazo zimepangwa mapema kama ifuatavyo:
- main.h: LED na USER_BUTTON safu ya ufupisho ya ufafanuzi.
- main.c: Usanidi wa saa ya mfumo kwa masafa ya juu zaidi.
- Bandari ya zamani ya LLample:
- Nakili/bandika folda ya Templates_LL - ili kuweka chanzo cha awali - au sasisha moja kwa moja mradi uliopo wa Templa tes_LL.
- Kisha, uhamishaji unajumuisha hasa kuchukua nafasi ya Templates_LL files na KutampLes_LL mradi lengwa.
- Weka sehemu zote za bodi maalum. Kwa sababu za uwazi, sehemu maalum za ubao zimealamishwa na maalum tags:
Kwa hivyo, hatua kuu za uhamishaji ni zifuatazo:
- Badilisha faili ya stm32wl3x_it.h file.
- Badilisha stm32wl3x_it.c file.
- Badilisha nafasi kuu.h file na usasishe: Weka ufafanuzi wa kitufe cha LED na mtumiaji wa kiolezo cha LL chini ya UWEKEZAJI MAALUM WA BODI. tags.
- Badilisha nafasi kuu.c file na usasishe:
- Weka usanidi wa saa wa kitendakazi cha kiolezo cha SystemClock_Config() LL chini ya BODI MAALUM CONFIGURATION tags.
- Kulingana na ufafanuzi wa LED, badilisha kila tukio la LDx na LDy nyingine inayopatikana kwenye file kuu.h.
Pamoja na marekebisho haya, example huendesha kwenye ubao unaolengwa.
RF maombi, maandamano, na exampchini
Aina tofauti za matumizi ya RF, maonyesho, na mfanoamples zinapatikana kwenye kifurushi cha STM32CubeWL3. Wameorodheshwa katika sehemu mbili hapa chini.
Sub-GHz examples na maandamano
Hawa wa zamaniamptunaonyesha sifa kuu za vifaa vya pembeni vya redio vya MRSUBG na LPAWUR. Hawa wa zamaniamples zinapatikana chini ya:
- Miradi\NUCLEO-WL33CC\Exampchini\MRSUBG
- Miradi\NUCLEO-WL33CC\Exampchini\LPAWUR
- Miradi\NUCLEO-WL33CC\Maandamano\MRSUBG
- Miradi\NUCLEO-WL33CC\Maonyesho\LPAWUR
Kila example au maonyesho kwa ujumla huwa na programu mbili zinazoitwa Tx na Rx zinazofanya kazi kama kisambazaji na kipokezi, mtawalia:
- Exampchini/MRSUBG
- MRSUBG_802_15_4: utekelezaji wa safu halisi iliyofafanuliwa na kiwango cha 802.15.4. Inaonyesha jinsi ya kusanidi redio ili kusambaza au kupokea pakiti 802.15.4.
- MRSUBG_BasicGeneric: Kubadilishana kwa pakiti msingi za STM32WL3x MR_SUBG.
- MRSUBG_Chat: Programu rahisi inayoonyesha jinsi ya kutumia Tx na Rx kwenye kifaa kimoja.
- MRSUBG_DatabufferHandler: Example ambayo inaonyesha jinsi ya kubadilishana kutoka Databuffer 0 na 1.
- MRSUBG_Sequencer AutoAck: Example ambayo inasambaza na kupokea pongezi za pakiti (ACKs) kiotomatiki.
- MRSUBG_WMBusSTD: Mabadilishano ya ujumbe wa WM-Bus.
- WakeupRadio: Example ili kujaribu pembeni ya redio ya LPAWUR.
- Maandamano/MRSUBG
- MRSUBG_RTC_Button_TX: Example huonyesha jinsi ya kuweka SoC katika modi ya kukomesha kwa kina na kusanidi MRSUBG ili kuamsha SoC kwa kubofya PB2 kutuma fremu au baada ya kuisha kwa kipima saa cha RTC.
- MRSUBG_Sequencer_Sniff: Example inaonyesha jinsi ya kuweka mpangilio wa MRSUBG kufanya kazi katika hali ya kunusa. Ex huyuample huonyesha upande wa mpokeaji na inahitaji kifaa kingine kama kisambazaji.
- MRSUBG_Timer: Programu hupanga matukio kadhaa ya kipima muda cha MRSUBG (pamoja na upakiaji kiotomatiki) na vipindi tofauti vya wakati.
- MRSUBG_WakeupRadio_Tx: Example anaelezea jinsi ya kuweka SoC katika modi ya kina ya kusimamisha na kusanidi MRSUBG ili kuamsha SoC kwa kubonyeza PB2 kutuma fremu. Ex huyuample huonyesha upande wa kisambazaji na inahitaji kifaa kingine kama kipokezi cha LPAWUR. Mpokeaji wa zamaniample iko chini ya NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx folda.
- Maandamano/LPAWUR
- LPAWUR_WakeupRadio_Rx: Example anaelezea jinsi ya kuweka SoC katika modi ya kusimamisha kwa kina na kusanidi LPAWUR ili kuamsha SoC wakati fremu inafika na kupokelewa kwa usahihi. Ex huyuample huonyesha upande wa mpokeaji na inahitaji kifaa kingine kama kisambazaji. Msambazaji wa zamaniample iko chini ya NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx folda.
Programu ya Sigfox™
Programu hizi zinaonyesha jinsi ya kutekeleza hali ya Sigfox™ na kutumia API za Sigfox™ zinazopatikana. Zinapatikana katika njia ya mradi Miradi\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: Programu hii inaonyesha jinsi ya kutumia kiolesura cha mstari amri (CLI) kutuma amri zinazotumia itifaki ya Sigfox™ kutuma ujumbe na kufanya majaribio ya uthibitishaji.
- Sigfox_PushButton: Programu hii inaruhusu tathmini ya uwezo wa redio wa kifaa cha STM32WL33xx Sigfox™. Kubonyeza PB1 hutuma jaribio la fremu ya Sigfox™.
Maswali Yanayoulizwa Mara kwa Mara
- Ni lini ninapaswa kutumia HAL badala ya madereva ya LL?
Viendeshi vya HAL vinatoa API za kiwango cha juu na zenye mwelekeo wa utendakazi, zenye kiwango cha juu cha kubebeka. Utata wa bidhaa au wa pembeni umefichwa kwa watumiaji wa mwisho.
Viendeshaji vya LL hutoa API za kiwango cha chini cha usajili, zilizo na uboreshaji bora lakini haziwezi kubebeka. Zinahitaji ujuzi wa kina wa bidhaa au vipimo vya IP. - Je, madereva ya HAL na LL yanaweza kutumika pamoja? Kama ndiyo, vikwazo ni vipi?
Inawezekana kutumia madereva ya HAL na LL. Tumia HAL kwa awamu ya uanzishaji ya pembeni kisha udhibiti shughuli za I/O na viendeshaji vya LL.
Tofauti kuu kati ya HAL na LL ni kwamba viendeshi vya HAL vinahitaji kuunda na kutumia vishikio kwa usimamizi wa operesheni huku viendeshi vya LL vinafanya kazi moja kwa moja kwenye rejista za pembeni. Kuchanganya HAL na LL kunaonyeshwa kwenye Exampchini_MIX exampchini. - API za uanzishaji wa LL zinawezeshwa vipi?
Ufafanuzi wa API za uanzishaji wa LL na nyenzo zinazohusiana (miundo, maandishi, na prototypes) umewekwa na swichi ya ujumuishaji ya USE_FULL_LL_DRIVER.
Ili uweze kutumia API za uanzishaji za LL, ongeza swichi hii kwenye kichakataji cha awali cha mkusanyaji wa zana. - Je, kuna mradi wowote wa kiolezo cha MRSUBG/LPAWUR wa zamani wa pembeniampchini?
Ili kuunda toleo jipya la MRSUBG au LPAWURample mradi, ama anza kutoka kwa mradi wa mifupa uliotolewa chini ya \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG au \Projects\NUCLEO-WL33CC\Examples\LPAWUR, au kutoka kwa mradi wowote unaopatikana chini ya saraka hizi. - STM32CubeMX inawezaje kutoa msimbo kulingana na programu iliyopachikwa?
STM32CubeMX ina maarifa yaliyojengewa ndani ya vidhibiti vidogo vya STM32, ikijumuisha vifaa vyao vya pembeni na programu, ambayo huiruhusu kutoa uwakilishi wa picha kwa mtumiaji na kuzalisha *.h au *.c files kulingana na usanidi wa mtumiaji.
Historia ya marekebisho
Jedwali 3. Historia ya marekebisho ya hati
Tarehe | Marekebisho | Mabadiliko |
29-Mar-2024 | 1 | Kutolewa kwa awali. |
30-Okt-2024 | 2 | Ushirikiano kamili wa STM32CubeWL3 in Mchemraba STM32. Imesasishwa:
Imeondolewa:
|
Nyaraka / Rasilimali
![]() |
Kifurushi cha Programu cha STM32WL3x [pdf] Maagizo Kifurushi cha Programu cha STM32WL3x, STM32WL3x, Kifurushi cha Programu, Kifurushi |