STM32WL3x ဆော့ဖ်ဝဲလ်ပက်ကေ့ချ်
သတ်မှတ်ချက်များ
- ထုတ်ကုန်အမည်- STM32CubeWL3 ဆော့ဖ်ဝဲလ်ပက်ကေ့ချ်
- လိုက်ဖက်ညီမှု- STM32WL3x မိုက်ခရိုကွန်ထရိုလာများ
- အဓိကအင်္ဂါရပ်များ-
- Low-layer (LL) နှင့် hardware abstraction layer (HAL) API များ
- SigfoxTM၊ FatFS နှင့် FreeRTOSTM kernel အလယ်တန်းဆော့ဖ်ဝဲ အစိတ်အပိုင်းများ
- လျှောက်လွှာများနှင့် သရုပ်ပြမှုများ
ထုတ်ကုန်အသုံးပြုမှု ညွှန်ကြားချက်များ
စတင်အသုံးပြုခြင်း
STM32CubeWL3 ဆော့ဖ်ဝဲလ်ပက်ကေ့ဂျ်ကို စတင်အသုံးပြုရန်၊ ဤအဆင့်များကို လိုက်နာပါ-
- ဆော့ဖ်ဝဲပက်ကေ့ချ်ကိုတရားဝင်မှဒေါင်းလုဒ်လုပ်ပါ။ website.
- လိုအပ်သော ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင် (ဥပမာ၊ STM32CubeIDE၊ EWARM၊ MDK-ARM) ကို ထည့်သွင်းပါ။
- ဟောင်းကိုကိုးကားပါ။ampလမ်းညွှန်ချက်အတွက် ထောက်ပံ့ပေးထားသော les နှင့် applications များ။
STM32CubeWL3 ဗိသုကာလက်ရာ ပြီးသွားပါပြီ။view
STM32CubeWL3 ဆော့ဖ်ဝဲလ်ပက်ကေ့ချ်ကို အဓိက အဆင့်သုံးဆင့်ဖြင့် တည်ဆောက်ထားသည်။
- အဆင့် 0- Hardware abstraction layer (HAL) နှင့် BSP drivers များ။
- အဆင့် 1- အပလီကေးရှင်းများ၊ စာကြည့်တိုက်များနှင့် ပရိုတိုကောအခြေခံ အစိတ်အပိုင်းများ။
အမေးများသောမေးခွန်းများ (FAQ)
မေး- STM32CubeWL3 ဆော့ဖ်ဝဲလ်ပက်ကေ့ခ်ျ၏ အဓိကအင်္ဂါရပ်များကား အဘယ်နည်း။
A- အဓိကအင်္ဂါရပ်များတွင် အနိမ့်ဆုံးအလွှာနှင့် HAL API များ၊ SigfoxTM၊ FatFS၊ FreeRTOSTM kernel၊ အပလီကေးရှင်းများနှင့် သရုပ်ပြမှုများကဲ့သို့သော အလယ်တန်းဆော့ဖ်ဝဲအစိတ်အပိုင်းများ ပါဝင်သည်။
နိဒါန်း
STM32Cube သည် ဖွံ့ဖြိုးတိုးတက်မှု ကြိုးပမ်းမှု၊ အချိန်နှင့် ကုန်ကျစရိတ်များကို လျှော့ချခြင်းဖြင့် ဒီဇိုင်နာများ၏ ကုန်ထုတ်စွမ်းအားကို သိသိသာသာ မြှင့်တင်ရန် STMicroelectronics မူလအစပြုမှုတစ်ခု ဖြစ်သည်။ STM32Cube သည် STM32 အစုစုတစ်ခုလုံးကို လွှမ်းခြုံထားသည်။
STM32Cube ပါဝင်သည်-
- ပရောဂျက်စတင်ဖန်တီးခြင်းမှ လက်တွေ့အကောင်အထည်ဖော်ခြင်းအထိ ကာမိစေရန် အသုံးပြုသူနှင့် အဆင်ပြေစေမည့် ဆော့ဖ်ဝဲ ဖွံ့ဖြိုးတိုးတက်ရေး ကိရိယာအစုံအလင် အပါအဝင်]
- STM32CubeMX၊ ဂရပ်ဖစ်ဆော့ဖ်ဝဲလ်ဖွဲ့စည်းမှုပုံစံတူးလ်တစ်ခုသည် graphical wizards များကိုအသုံးပြု၍ C အစပျိုးကုဒ်၏အလိုအလျောက်ထုတ်လုပ်ခြင်းကိုခွင့်ပြုသည်။
- STM32CubeIDE၊ အရံဖွဲ့စည်းပုံ၊ ကုဒ်ထုတ်လုပ်ခြင်း၊ ကုဒ်စုစည်းခြင်းနှင့် အမှားရှာပြင်ခြင်းဆိုင်ရာ အင်္ဂါရပ်များပါရှိသော အလုံးစုံ-in-one ဖွံ့ဖြိုးတိုးတက်ရေးကိရိယာ
- STM32CubeCLT၊ ကုဒ်စုစည်းမှု၊ ဘုတ်ပရိုဂရမ်ရေးဆွဲခြင်းနှင့် အမှားရှာပြင်ခြင်းဆိုင်ရာ အင်္ဂါရပ်များပါရှိသော အလုံးစုံ-in-one command-line ဖွံ့ဖြိုးတိုးတက်ရေးကိရိယာအစုံ။
- STM32CubeProgrammer (STM32CubeProg)၊ graphical နှင့် command-line ဗားရှင်းများတွင် ရရှိနိုင်သော ပရိုဂရမ်းမင်းတူးလ်
- STM32CubeMonitor (STM32CubeMonitor၊ STM32CubeMonPwr၊ STM32CubeMonRF၊ STM32CubeMonUCPD)၊ STM32 အပလီကေးရှင်းများ၏ အပြုအမူနှင့် စွမ်းဆောင်ရည်ကို အချိန်နှင့်တပြေးညီ ချိန်ညှိရန် အစွမ်းထက်သော စောင့်ကြည့်ရေးကိရိယာများ
- STM32Cube MCU နှင့် MPU ပက်ကေ့ဂျ်များ၊ မိုက်ခရိုကွန်ထရိုလာနှင့် မိုက်ခရိုပရိုဆက်ဆာစီးရီးတစ်ခုစီအတွက် ကျယ်ကျယ်ပြန့်ပြန့်ထည့်သွင်းထားသော ဆော့ဖ်ဝဲပလပ်ဖောင်းများ (STM32CubeWL3 ကဲ့သို့သော STM32WL3x ထုတ်ကုန်လိုင်းအတွက် STMXNUMXCubeWLXNUMX ကဲ့သို့)၊
- STM32Cube hardware abstraction layer (HAL)၊
- STM32Cube low-layer APIs များသည် အကောင်းဆုံးစွမ်းဆောင်ရည်နှင့် ခြေရာများကို သေချာစေကာ] ဟာ့ဒ်ဝဲကို အသုံးပြုသူ ထိန်းချုပ်မှု မြင့်မားသည်
- FreeRTOS™ kernel၊ FatFS နှင့် Sigfox™ ကဲ့သို့ တသမတ်တည်းရှိသော အလယ်တန်းဆော့ဖ်ဝဲ အစိတ်အပိုင်းများ
- အရံနှင့် အပလီကေးရှင်းဟောင်း အစုံအလင်ဖြင့် မြှုပ်သွင်းထားသော ဆော့ဖ်ဝဲ အသုံးဝင်မှုများ အားလုံးamples
- STM32Cube MCU နှင့် MPU ပက်ကေ့ခ်ျများ၏ လုပ်ဆောင်ချက်များကို ဖြည့်သွင်းထားသည့် ဆော့ဖ်ဝဲအစိတ်အပိုင်းများ ပါ၀င်သည့် STM32Cube တိုးချဲ့ပက်ကေ့ခ်ျများ-
-
- Middleware တိုးချဲ့မှုများနှင့် အသုံးချအလွှာများ
- Exampအချို့သော STMicroelectronics ဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်များပေါ်တွင် လုပ်ဆောင်နေပါသည်။
ဤအသုံးပြုသူလက်စွဲတွင် STM32CubeWL3 MCU Package ကို မည်သို့စတင်ရမည်ကို ဖော်ပြထားပါသည်။
အပိုင်း 2 သည် STM32CubeWL3 ၏ အဓိကအင်္ဂါရပ်များကို ဖော်ပြပြီး အပိုင်း 3 သည် ကျော်လွန်သွားမည်ဖြစ်သည်။view ၎င်း၏ဗိသုကာနှင့် MCU Package တည်ဆောက်ပုံ။
ယေဘုယျသတင်းအချက်အလက်
STM32CubeWL3 သည် Arm® Cortex®‑M32+ ပရိုဆက်ဆာကို အခြေခံ၍ STM3WL0x ထုတ်ကုန်လိုင်း မိုက်ခရိုကွန်ထရိုလာများတွင် Sigfox™ binaries အပါအဝင် sub-GHz သရုပ်ပြအက်ပ်လီကေးရှင်းများကို လုပ်ဆောင်သည်။
STM32WL3x မိုက်ခရိုကွန်ထရိုလာများသည် တုနှိုင်းမရတဲ့ဘက်ထရီသက်တမ်းအတွက် အထူးသင့်လျော်သော RF ရေဒီယိုအစွန်အဖျား STMicroelectronics ၏ ခေတ်မီဆန်းသစ်သော အနုပညာမြောက်သည့် sub-GHz ကို မြှုပ်နှံထားပါသည်။
မှတ်ချက်Arm သည် အမေရိကန်နှင့်/သို့မဟုတ် အခြားနေရာများတွင် Arm Limited (သို့မဟုတ် ၎င်း၏လုပ်ငန်းခွဲများ) ၏ မှတ်ပုံတင်ထားသော ကုန်အမှတ်တံဆိပ်တစ်ခုဖြစ်သည်။
STM32CubeWL3 ၏အဓိကအင်္ဂါရပ်များ
- STM32CubeWL3 MCU Package သည် Arm® Cortex®-M32+ ပရိုဆက်ဆာအပေါ် အခြေခံ၍ STM32 0-bit မိုက်ခရိုကွန်ထရိုလာများပေါ်တွင် အလုပ်လုပ်ပါသည်။ ၎င်းသည် STM32WL3x ထုတ်ကုန်လိုင်း မိုက်ခရိုကွန်ထရိုလာများအတွက် အက်ပလီကေးရှင်းတစ်ခုတည်ဆောက်ရန်အတွက် လိုအပ်သော ယေဘုယျထည့်သွင်းထားသောဆော့ဖ်ဝဲအစိတ်အပိုင်းအားလုံးကို အထုပ်တစ်ခုတွင် စုစည်းထားသည်။
- ပက်ကေ့ဂျ်တွင် အနိမ့်ဆုံးအလွှာ (LL) နှင့် မိုက်ခရိုကွန်ထရိုလာ ဟာ့ဒ်ဝဲကို ဖုံးအုပ်ထားသည့် ဟာ့ဒ်ဝဲအလွှာ (HAL) API များ ပါ၀င်သည်၊၊ ကျယ်ပြန့်သော ex အစုနှင့်အတူampSTMicroelectronics ဘုတ်များပေါ်တွင် လုပ်ဆောင်နေပါသည်။ အသုံးပြုသူအဆင်ပြေစေရန် HAL နှင့် LL API များကို open-source BSD လိုင်စင်တွင် ရနိုင်ပါသည်။ ၎င်းတွင် Sigfox™၊ FatFS နှင့် FreeRTOS™ kernel အလယ်တန်းဆော့ဖ်ဝဲ အစိတ်အပိုင်းများလည်း ပါဝင်သည်။
- STM32CubeWL3 MCU Package သည် ၎င်း၏ အလယ်တန်းဆော့ဖ်ဝဲ အစိတ်အပိုင်းအားလုံးကို အကောင်အထည်ဖော်သည့် အပလီကေးရှင်းပေါင်းများစွာနှင့် သရုပ်ပြမှုများကိုလည်း ပံ့ပိုးပေးပါသည်။
- STM32CubeWL3 MCU Package အစိတ်အပိုင်း အပြင်အဆင်ကို ပုံ 1 တွင် သရုပ်ဖော်ထားသည်။
ပုံ 1. STM32CubeWL3 MCU Package အစိတ်အပိုင်းများ
STM32CubeWL3 ဗိသုကာview
STM32CubeWL3 MCU Package ဖြေရှင်းချက်သည် ပုံ 2 တွင်ဖော်ပြထားသည့်အတိုင်း လွယ်ကူစွာ အပြန်အလှန်တုံ့ပြန်နိုင်သော လွတ်လပ်သောအဆင့်သုံးဆင့်ဝန်းကျင်တွင် တည်ဆောက်ထားသည်။ အဆင့် ၁
ဤအဆင့်ကို sublayers သုံးခုခွဲထားသည်။
- ဘုတ်အဖွဲ့ပံ့ပိုးမှုအထုပ် (BSP)။
- Hardware abstraction layer (HAL)-
- HAL အရံယာဉ်မောင်းများ
- အလွှာနိမ့်ယာဉ်မောင်းများ
- အခြေခံ အရံအသုံးပြုမှု ဥပမာamples
ဘုတ်အဖွဲ့ပံ့ပိုးမှုအထုပ် (BSP)
ဤအလွှာသည် ဟာ့ဒ်ဝဲဘုတ်များအတွင်းရှိ ဟာ့ဒ်ဝဲအစိတ်အပိုင်းများ (အယ်လ်အီးဒီများ၊ ခလုတ်များ၊ နှင့် COM ဒရိုက်ဘာများကဲ့သို့) နှင့် သက်ဆိုင်သော API အစုအဝေးကို ပေးဆောင်သည်။ ၎င်းကို အပိုင်းနှစ်ပိုင်းဖြင့် ဖွဲ့စည်းထားသည်။
- အစိတ်အပိုင်း-
၎င်းသည် ဘုတ်ပေါ်ရှိ ပြင်ပစက်ပစ္စည်းနှင့် သက်ဆိုင်ပြီး STM32 နှင့် သက်ဆိုင်သည် ။ အစိတ်အပိုင်း ဒရိုက်ဘာသည် BSP ဒရိုက်ဘာ ပြင်ပအစိတ်အပိုင်းများသို့ သီးခြား API များကို ပေးဆောင်ပြီး အခြားဘုတ်ပေါ်တွင် သယ်ဆောင်သွားနိုင်သည်။ - BSP ယာဉ်မောင်း
၎င်းသည် အစိတ်အပိုင်းဒရိုက်ဗာများကို သီးခြားဘုတ်အဖွဲ့တစ်ခုသို့ ချိတ်ဆက်ခြင်းအား ခွင့်ပြုပေးပြီး အသုံးပြုရလွယ်ကူသော APIs အစုံကို ပံ့ပိုးပေးပါသည်။ API အမည်ပေးခြင်း စည်းမျဉ်းသည် BSP_FUNCT_Action() ဖြစ်သည်။
Example- BSP_LED_Init(), BSP_LED_On()
BSP သည် အဆင့်နိမ့်လုပ်ရိုးလုပ်စဉ်များကို အကောင်အထည်ဖော်ရုံဖြင့် မည်သည့် hardware တွင်မဆို အလွယ်တကူ porting ပြုလုပ်နိုင်သည့် modular architecture ကို အခြေခံထားသည်။
Hardware abstraction layer (HAL) နှင့် low-layer (LL)
STM32CubeWL3 HAL နှင့် LL တို့သည် ဖြည့်စွက်ပြီး လျှောက်လွှာလိုအပ်ချက်များစွာကို အကျုံးဝင်သည်-
- HAL ဒရိုက်ဘာများသည် အဆင့်မြင့်လုပ်ဆောင်ချက်ကို ဦးတည်သည့် သယ်ဆောင်ရလွယ်ကူသော API များကို ပေးဆောင်သည်။ ၎င်းတို့သည် MCU နှင့် အရံရှုပ်ထွေးမှုများကို အဆုံးအသုံးပြုသူထံ ဝှက်ထားသည်။
HAL ဒရိုက်ဘာများသည် အသုံးပြုသူ၏အပလီကေးရှင်းအကောင်အထည်ဖော်မှုကို ရိုးရှင်းလွယ်ကူစေသည့် ယေဘူယျ ဘက်စုံသုံးအင်္ဂါရပ်-အသားပေး API များကို ပေးဆောင်သည်။ ဟောင်းအတွက်ample၊ ဆက်သွယ်ရေးအရံအတားများ (I2C၊ UART နှင့် အခြားအရာများ) အတွက် ၎င်းသည် အစွန်အဖျားများကို အစပြုခြင်းနှင့် ပြင်ဆင်သတ်မှတ်ခြင်း၊ မဲဆွယ်ခြင်း၊ အနှောင့်အယှက်ပေးခြင်း သို့မဟုတ် DMA လုပ်ငန်းစဉ်အပေါ် အခြေခံ၍ ဒေတာလွှဲပြောင်းခြင်းကို စီမံခန့်ခွဲခြင်းနှင့် ဆက်သွယ်ရေးကာလအတွင်း ဖြစ်ပေါ်လာနိုင်သည့် ဆက်သွယ်ရေးအမှားအယွင်းများကို ကိုင်တွယ်ခြင်းတို့ကို ခွင့်ပြုပေးပါသည်။ HAL ဒရိုက်ဘာ API များကို အမျိုးအစား နှစ်မျိုးခွဲထားသည်-
- STM32 စီးရီး မိုက်ခရိုကွန်ထရိုလာများအားလုံးအတွက် ဘုံနှင့် ယေဘူယျလုပ်ဆောင်ချက်များကို ပေးဆောင်သည့် ယေဘူယျ API များ။
- မိသားစုတစ်ခု သို့မဟုတ် အစိတ်အပိုင်းနံပါတ်တစ်ခုအတွက် သီးသန့်နှင့် စိတ်ကြိုက်လုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးသည့် တိုးချဲ့ API များ။
- Low-layer APIs များသည် ပိုမိုကောင်းမွန်သော ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ထားသော်လည်း သယ်ဆောင်ရလွယ်ကူမှုနည်းသော မှတ်ပုံတင်အဆင့်တွင် အဆင့်နိမ့် API များကို ပံ့ပိုးပေးပါသည်။ ၎င်းတို့သည် MCU နှင့် peripheral specifications များကို နက်ရှိုင်းစွာ သိရှိရန် လိုအပ်ပါသည်။
LL ယာဉ်မောင်းများသည် HAL ထက် ဟာ့ဒ်ဝဲနှင့် ပိုနီးစပ်သော လျင်မြန်သော ပေါ့ပါးကျွမ်းကျင်သော အလွှာတစ်ခုကို ပေးဆောင်ရန် ဒီဇိုင်းထုတ်ထားသည်။ HAL နှင့်ဆန့်ကျင်ဘက်၊ LL APIs များကို optimized access သည် အဓိကအင်္ဂါရပ်မဟုတ်သော၊ သို့မဟုတ် လေးလံသောဆော့ဖ်ဝဲလ်ဖွဲ့စည်းပုံဖွဲ့စည်းပုံ သို့မဟုတ် ရှုပ်ထွေးသောအထက်အဆင့်စဥ်များလိုအပ်သော အရံပစ္စည်းများအတွက် ထောက်ပံ့ပေးထားခြင်းမရှိပါ။
LL drivers များ၏အင်္ဂါရပ်များ
- ဒေတာတည်ဆောက်ပုံများတွင် သတ်မှတ်ထားသည့် ဘောင်များအလိုက် အရံပင်မအင်္ဂါရပ်များကို စတင်ရန် လုပ်ဆောင်ချက်များအစုံ။
- အကွက်တစ်ခုစီနှင့် သက်ဆိုင်သော ပြန်လည်သတ်မှတ်မှုတန်ဖိုးများနှင့်အတူ ကနဦးစတင်ခြင်းဒေတာတည်ဆောက်ပုံများကို ဖြည့်စွက်ရန် လုပ်ဆောင်ချက်အစုံ။
- အနားသတ်-အစပြုခြင်းအတွက် လုပ်ဆောင်ချက် (အစွန်အဖျား မှတ်ပုံတင်များကို ၎င်းတို့၏ မူရင်းတန်ဖိုးများသို့ ပြန်ယူထားသည်)။
- တိုက်ရိုက်နှင့် အက်တမ် မှတ်ပုံတင်ခွင့်အတွက် အင်လိုင်းလုပ်ဆောင်ချက်အစုံ။
- HAL မှ အပြည့်အဝလွတ်လပ်မှုရှိပြီး သီးခြားမုဒ်တွင် (HAL ယာဉ်မောင်းများမပါဘဲ) အသုံးပြုနိုင်သည်။
- ပံ့ပိုးထားသော အရံအင်္ဂါရပ်များ အပြည့်အစုံ။
အခြေခံ အရံအသုံးပြုမှု ဥပမာamples
ဤအလွှာသည် ex ကို ဖုံးအုပ်ထားသည်။amples သည် HAL နှင့် BSP အရင်းအမြစ်များကိုသာအသုံးပြု၍ STM32 အရံအတားများပေါ်တွင်တည်ဆောက်ထားသည်။
ဆန္ဒပြပွဲ exampပိုမိုရှုပ်ထွေးသော ex ကိုပြသရန် les ကိုလည်းရရှိနိုင်သည်။ampMRSUBG နှင့် LPAWUR ကဲ့သို့သော သီးခြားအရံအတားများပါရှိသော အခြေအနေများ။
အဆင့် ၁
ဤအဆင့်ကို အလွှာနှစ်ခုအဖြစ် ပိုင်းခြားထားသည်။
- Middleware အစိတ်အပိုင်းများ
- ExampMiddleware အစိတ်အပိုင်းများကို အခြေခံ၍ les
Middleware အစိတ်အပိုင်းများ
အလယ်တန်းဆော့ဖ်ဝဲသည် FreeRTOS™ kernel၊ FatFS နှင့် Sigfox™ ပရိုတိုကော စာကြည့်တိုက်များ ပါဝင်သော စာကြည့်တိုက်အစုအဝေးတစ်ခုဖြစ်သည်။ ဤအလွှာ၏အစိတ်အပိုင်းများအကြား အလျားလိုက်အပြန်အလှန်တုံ့ပြန်မှုသည် အထူးပြု API များကိုခေါ်ဆိုခြင်းဖြင့် လုပ်ဆောင်သည်။
အနိမ့်အလွှာ ဒရိုင်ဘာများနှင့် ဒေါင်လိုက်အပြန်အလှန်ဆက်သွယ်မှုကို စာကြည့်တိုက်စနစ်ခေါ်ဆိုမှုမျက်နှာပြင်တွင် ထည့်သွင်းထားသည့် သီးခြားခေါ်ဆိုမှုများနှင့် တည်ငြိမ်သောမက်ခရိုများမှတစ်ဆင့် လုပ်ဆောင်သည်။
Middleware အစိတ်အပိုင်းတစ်ခုစီ၏ အဓိကအင်္ဂါရပ်များမှာ အောက်ပါအတိုင်းဖြစ်သည်။
- FreeRTOS™ kernel- မြှုပ်သွင်းထားသော စနစ်များအတွက် ဒီဇိုင်းထုတ်ထားသည့် အချိန်နှင့်တစ်ပြေးညီ လည်ပတ်မှုစနစ် (RTOS) ကို အကောင်အထည်ဖော်သည်။
- Sigfox™- Sigfox™ ပရိုတိုကော စာကြည့်တိုက်ကို Sigfox™ ပရိုတိုကော ကွန်ရက်နှင့် လိုက်လျောညီထွေဖြစ်စေပြီး RF Sigfox™ ကိရိယာများနှင့် စမ်းသပ်ရန် RF စမ်းသပ်ပရိုတိုကော စာကြည့်တိုက် ပါဝင်သည်။
- FatFS- ယေဘူယျ FAT ကို အကောင်အထည်ဖော်သည်။ file စနစ် module ။
ExampMiddleware အစိတ်အပိုင်းများကို အခြေခံ၍ les
အလယ်တန်းဆော့ဖ်ဝဲ အစိတ်အပိုင်းတစ်ခုစီတွင် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ex နှင့် ပါရှိသည်။amples ဟုခေါ်သော အပလီကေးရှင်းများ အသုံးပြုနည်းကို ပြသသည်။ ပေါင်းစည်းခြင်း exampMiddleware အစိတ်အပိုင်းများစွာကို အသုံးပြုသည့် les များကိုလည်း ပေးထားသည်။
STM32CubeWL3 firmware package ပြီးပါပြီ။view
STM32WL3x စက်များနှင့် ဟာ့ဒ်ဝဲကို ပံ့ပိုးထားသည်။
STM32Cube သည် ယေဘူယျဗိသုကာတစ်ခုတွင် တည်ဆောက်ထားသော သယ်ယူရလွယ်ကူသော ဟာ့ဒ်ဝဲ abstraction အလွှာ (HAL) ကို ပေးဆောင်ပါသည်။ ၎င်းသည် MCU ကို မည်သည့်အရာအား အသုံးပြုထားသည်ကို မသိရှိဘဲ၊ အတွင်းကျကျ၊ နက်ရှိုင်းစွာ အကောင်အထည်ဖော်ရန် အလယ်တန်းဝဲအလွှာကို အသုံးပြုခြင်းကဲ့သို့သော တည်ဆောက်မှုအလွှာဆိုင်ရာ နိယာမကို ခွင့်ပြုသည်။ ၎င်းက ဒစ်ဂျစ်တယ်ကုဒ်ကို ပြန်သုံးနိုင်မှုကို ပိုမိုကောင်းမွန်စေပြီး အခြားစက်ပစ္စည်းများသို့ အလွယ်တကူ သယ်ဆောင်သွားနိုင်ရန် သေချာစေသည်။
- ထို့အပြင်၊ ၎င်း၏ အလွှာလိုက်တည်ဆောက်မှုဖြင့်၊ STM32CubeWL3 သည် STM32WL3x ထုတ်ကုန်လိုင်းအားလုံးအတွက် အပြည့်အဝပံ့ပိုးပေးပါသည်။
- အသုံးပြုသူသည် stm32wl3x.h တွင် မှန်ကန်သော macro ကိုသာ သတ်မှတ်ရပါမည်။
ဇယား 1 သည် STM32WL3x အသုံးပြုထားသော ထုတ်ကုန်လိုင်းစက်ပစ္စည်းပေါ် မူတည်၍ သတ်မှတ်ရန် မက်ခရိုကို ပြသသည်။ ဤ macro ကို compiler preprocessor တွင်လည်း သတ်မှတ်ရပါမည်။
ဇယား 1. STM32WL3x ထုတ်ကုန်လိုင်းအတွက် Macros
Macro တွင် သတ်မှတ်ထားသည်။ stm32wl3x.h | STM32WL3x ထုတ်ကုန်လိုင်း ကိရိယာများ |
stm32wl33 | STM32WL33xx မိုက်ခရိုကွန်ထရိုလာများ |
STM32CubeWL3 တွင် ကြွယ်ဝသော ex အစုံပါရှိသည်။ampအဆင့်တိုင်းရှိ les နှင့် application များသည် HAL driver သို့မဟုတ် Middleware အစိတ်အပိုင်းများကို နားလည်ပြီး အသုံးပြုရလွယ်ကူစေသည်။ ဒါတွေက exampဇယား 2 တွင်ဖော်ပြထားသော STMicroelectronics ဘုတ်များပေါ်တွင်အလုပ်လုပ်သည်။
ဘုတ် | STM32WL3x ဘုတ်အဖွဲ့ ပံ့ပိုးထားသော စက်ပစ္စည်းများ |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
STM32CubeWL3 MCU Package သည် တွဲဖက်အသုံးပြုနိုင်သည့် မည်သည့်ဟာ့ဒ်ဝဲတွင်မဆို လုပ်ဆောင်နိုင်ပါသည်။ အသုံးပြုသူများသည် ပေးထားသော ex ကို port လုပ်ရန် BSP driver များကို အပ်ဒိတ်လုပ်ပါ။amp၎င်းတို့တွင် တူညီသော ဟာ့ဒ်ဝဲ အင်္ဂါရပ်များ (အယ်လ်အီးဒီများ သို့မဟုတ် ခလုတ်များ ကဲ့သို့) ပါရှိပါက ၎င်းတို့၏ ဘုတ်များပေါ်တွင် ကြည့်ပါ။
Firmware package ပြီးပါပြီ။view
STM32CubeWL3 MCU Package ဖြေရှင်းချက်ကို ပုံ 3 တွင်ပြထားသည့် ဖွဲ့စည်းပုံပါရှိသော ဇစ်အထုပ်တစ်ခုတွင် ပေးထားသည်။
ပုံ 3. STM32CubeWL3 firmware အထုပ်တည်ဆောက်ပုံ
သတိပြုရန်-
အသုံးပြုသူသည် အစိတ်အပိုင်းများကို မွမ်းမံပြင်ဆင်ခြင်းမပြုရပါ။ file၎။ အသုံးပြုသူသည် \Projects အရင်းအမြစ်များကိုသာ တည်းဖြတ်နိုင်သည်။
ဘုတ်အဖွဲ့တစ်ခုစီအတွက် ex အစုံamples သည် EWARM၊ MDK-ARM နှင့် STM32CubeIDE toolchains အတွက် ကြိုတင်ပြင်ဆင်ထားသော ပရောဂျက်များဖြင့် ပံ့ပိုးထားသည်။
ပုံ 4 သည် NUCLEO-WL33CCx ဘုတ်များအတွက် ပရောဂျက်တည်ဆောက်ပုံကို ပြထားသည်။
ရည်းစားဟောင်းamples များကို ၎င်းတို့အသုံးပြုသည့် STM32CubeWL3 အဆင့်ပေါ်မူတည်၍ အမျိုးအစားခွဲခြားထားပါသည်။ ၎င်းတို့ကို အောက်ပါအတိုင်း အမည်ပေးထားပါသည်။
- အဆင့် 0 examples ကို Ex ဟုခေါ်သည်။amples၊ ထွamples_LL နှင့် Examples_MIX ၎င်းတို့သည် HAL ဒရိုက်ဘာများ၊ LL ဒရိုက်ဘာများနှင့် HAL နှင့် LL ဒရိုက်ဘာများကို အလယ်အလတ်ဆော့ဖ်ဝဲ အစိတ်အပိုင်းမပါဘဲ ရောနှောအသုံးပြုသည်။ ဆန္ဒပြပွဲ examples တွေလည်း ရနိုင်ပါတယ်။
- အဆင့် 1 examples ကို Applications ဟုခေါ်သည်။ ၎င်းတို့သည် အလယ်တန်းဆော့ဖ်ဝဲအစိတ်အပိုင်းတစ်ခုစီ၏ ပုံမှန်အသုံးပြုမှုကိစ္စများကို ပေးဆောင်သည်။
ပေးထားသောဘုတ်အတွက် မည်သည့် Firmware Application ကို Templ ates နှင့် Templates_LL လမ်းညွှန်များတွင် ရရှိနိုင်သော နမူနာပရောဂျက်များကို အသုံးပြု၍ လျင်မြန်စွာ တည်ဆောက်နိုင်ပါသည်။
Examples၊ ထွamples_LL နှင့် Examples_MIX တွင် တူညီသောဖွဲ့စည်းပုံ ရှိသည်-
- ခေါင်းစီးအားလုံးပါဝင်သော \inc ဖိုင်တွဲ files.
- အရင်းအမြစ်ကုဒ်ပါရှိသော \src ဖိုင်တွဲ။
- toolchain တစ်ခုစီအတွက် ကြိုတင်ပြင်ဆင်ထားသော ပရောဂျက်များပါရှိသော \EWARM၊ MDK-ARM နှင့် \STM32CubeIDE ဖိုင်တွဲများ။
- readme.md နှင့် readme.html ဟောင်းကို ဖော်ပြခြင်း။ampအကျင့်စရိုက်နှင့် အလုပ်ဖြစ်ရန် လိုအပ်သော ပတ်ဝန်းကျင်။
STM32CubeWL3 ဖြင့် စတင်လိုက်ပါ။
ပထမရည်းစားဟောင်းကို ပြေးသည်။ample
ဤအပိုင်းတွင် ပထမ ex ကို run ရန် မည်မျှရိုးရှင်းကြောင်း ရှင်းပြထားသည်။ample STM32CubeWL3 အတွင်း။ ၎င်းသည် NUCLEO-WL33CC1 ဘုတ်ပေါ်တွင် လုပ်ဆောင်နေသော ရိုးရှင်းသော LED toggle မျိုးဆက်ကို သရုပ်ဖော်ပုံအဖြစ် အသုံးပြုသည်-
- STM32CubeWL3 MCU Package ကို ဒေါင်းလုဒ်လုပ်ပါ။
- ၎င်းကို ဇစ်ဖွင့်ပါ၊ သို့မဟုတ် ပေးထားပါက ထည့်သွင်းသူအား သင်ရွေးချယ်သည့် လမ်းညွှန်တစ်ခုတွင် လုပ်ဆောင်ပါ။
- ပုံ 3 တွင်ပြသထားသည့် ပက်ကေ့ချ်ဖွဲ့စည်းပုံအား မွမ်းမံမွမ်းမံရန် သေချာပါစေ။ STM32CubeWL3 firmware ပက်ကေ့ခ်ျတည်ဆောက်ပုံ။ အချို့သော IDE များသည် လမ်းကြောင်းရှည်လွန်းသောအခါ ပြဿနာများကြုံတွေ့ရသောကြောင့် အမြစ်အသံအတိုးအကျယ် (C:\ST သို့မဟုတ် G:\Tests) အနီးရှိ အထုပ်ကို ကူးယူရန်လည်း အကြံပြုထားကြောင်း သတိပြုပါ။
HAL ex ကို ဘယ်လို run မလဲ။ample
ရည်းစားဟောင်းကို မတင်မီ၊ample၊ ဟောင်းကိုဖတ်ရန် အထူးအကြံပြုလိုပါသည်။ampငါ့ကိုဖတ်ပါ။ file သီးခြားဖွဲ့စည်းပုံအတွက်။
- \Projects\NUCLEO-WL33CC\Ex သို့ ကြည့်ရှုပါ။amples
- \GPIO ကိုဖွင့်ပါ၊ ထို့နောက် \GPIO_EXTI ဖိုင်တွဲများကိုဖွင့်ပါ။
- နှစ်သက်ရာ toolchain ဖြင့် ပရောဂျက်ကိုဖွင့်ပါ။ အမြန်ကျော်view ရည်းစားဟောင်းကို ဖွင့်နည်း၊ တည်ဆောက်ပုံနှင့် လုပ်ဆောင်ပုံအကြောင်းample supported toolchains နှင့်အတူ အောက်တွင်ဖော်ပြထားသည်။
- အားလုံးကို ပြန်လည်တည်ဆောက်ပါ။ files နှင့်ပစ်မှတ်မှတ်ဉာဏ်ထဲသို့ပုံရိပ်ကိုတင်ပါ။
- ရည်းစားဟောင်းကို ပြေးပါ။ampလဲ့ အသေးစိတ်အချက်အလက်များအတွက် ex ကိုကိုးကားပါ။ampငါ့ကိုဖတ်ပါ။ file.
ဖွင့်ရန်၊ တည်ဆောက်ရန်နှင့် ex ကို run ရန်ampပံ့ပိုးပေးထားသော toolchains တစ်ခုစီနှင့်အတူ၊ အောက်ပါအဆင့်များကို လိုက်နာပါ။
- ပြန်နွေး-
- အောက်မှာ ထွamples ဖိုဒါ၊ \EWARM ဖိုင်တွဲခွဲကိုဖွင့်ပါ။
- Project.eww အလုပ်ခွင်ကိုဖွင့်ပါ (အလုပ်ခွင်အမည်သည် ဟောင်းတစ်ခုမှ ပြောင်းသွားနိုင်သည်။ampနောက်တစ်ယောက်)။
- အားလုံးကို ပြန်လည်တည်ဆောက်ပါ။ files- [စီမံကိန်း]>[အားလုံး ပြန်လည်တည်ဆောက်ရန်]။
- ပရောဂျက်ပုံကို တင်ပါ- [ပရောဂျက်]>[အမှားပြင်ဆင်ခြင်း]။
- ပရိုဂရမ်ကိုဖွင့်ပါ- [Debug]>[Go (F5)]။
- MDK-ARM-
- အောက်မှာ ထွamples ဖိုင်တွဲ၊ \MDK-ARM ဖိုင်တွဲခွဲကိုဖွင့်ပါ။
- Project.uvproj အလုပ်ခွင်ကိုဖွင့်ပါ (အလုပ်ခွင်အမည်သည် ဟောင်းတစ်ခုမှ ပြောင်းသွားနိုင်သည်။ampနောက်တစ်ယောက်)။
- အားလုံးကို ပြန်လည်တည်ဆောက်ပါ။ files- [စီမံကိန်း]>[ပစ်မှတ်အားလုံးကို ပြန်လည်တည်ဆောက်ပါ။ file၎]
- ပရောဂျက်ပုံကို တင်ပါ- [Debug]>[Start/Stop Debug Session]။
- ပရိုဂရမ်ကိုဖွင့်ပါ- [Debug]>[Run (F5)]။
- STM32CubeIDE-
- STM32CubeIDE toolchain ကိုဖွင့်ပါ။
- နှိပ်ပါ [File]>[လုပ်ငန်းခွင်ပြောင်းရန်]>[အခြား] နှင့် STM32CubeIDE အလုပ်ခွင်လမ်းညွှန်သို့ ဝင်ရောက်ကြည့်ရှုပါ။
- နှိပ်ပါ [File]>[တင်သွင်းခြင်း]၊ [အထွေထွေ]>[လုပ်ငန်းခွင်ထဲသို့ လက်ရှိပရောဂျက်များ] ကိုရွေးချယ်ပြီး [Next] ကိုနှိပ်ပါ။
- STM32CubeIDE workspace directory သို့ ရှာဖွေပြီး ပရောဂျက်ကို ရွေးချယ်ပါ။
- ပရောဂျက်အားလုံးကို ပြန်လည်တည်ဆောက်ပါ။ files- Project Explorer ဝင်းဒိုးရှိ ပရောဂျက်ကို ရွေးချယ်ပြီးနောက် အဆိုပါကို နှိပ်ပါ။
[Project]>[Build project] မီနူး။ - ပရိုဂရမ်ကိုဖွင့်ပါ- [Run]>[Debug (F11)]။
စိတ်ကြိုက် application ကိုတီထွင်ခြင်း။
အက်ပလီကေးရှင်းတစ်ခုကို တီထွင်ရန် သို့မဟုတ် အပ်ဒိတ်လုပ်ရန် STM32CubeMX ကို အသုံးပြုခြင်း။
STM32Cube MCU Package တွင်၊ ပရောဂျက်အားလုံးနီးပါးamples သည် system၊ peripherals နှင့် middleware ကိုအစပြုရန် STM32CubeMX tool ဖြင့်ထုတ်လုပ်ထားသည်။
ရှိပြီးသား ပရောဂျက်ဟောင်းကို တိုက်ရိုက်အသုံးပြုခြင်း။ample STM32CubeMX tool မှ STM32CubeMX 6.12.0 နှင့်အထက် လိုအပ်သည်-
- STM32CubeMX ကို ထည့်သွင်းပြီးနောက်၊ လိုအပ်ပါက အဆိုပြုထားသော ပရောဂျက်တစ်ခုကို အပ်ဒိတ်လုပ်ပါ။
ရှိပြီးသားပရောဂျက်တစ်ခုကိုဖွင့်ရန် အရိုးရှင်းဆုံးနည်းလမ်းမှာ *.ioc ကို နှစ်ချက်နှိပ်ရန်ဖြစ်သည်။ file ထို့ကြောင့် STM32CubeMX သည် ပရောဂျက်နှင့် ၎င်း၏အရင်းအမြစ်ကို အလိုအလျောက်ဖွင့်ပေးမည်ဖြစ်သည်။ file၎။ STM32CubeMX သည် ထိုကဲ့သို့သော ပရောဂျက်များ၏ ကနဦးအရင်းအမြစ်ကုဒ်ကို ထုတ်ပေးသည်။ - ပင်မအပလီကေးရှင်းအရင်းအမြစ်ကုဒ်ကို “အသုံးပြုသူကုဒ် BEGIN” နှင့် “အသုံးပြုသူကုဒ် END” မှတ်ချက်များဖြင့် ပါရှိသည်။ အရံရွေးချယ်မှုနှင့် ဆက်တင်များကို မွမ်းမံထားပါက၊ STM32CubeMX သည် ပင်မအပလီကေးရှင်းရင်းမြစ်ကုဒ်ကို ထိန်းသိမ်းထားစဉ်တွင် STMXNUMXCubeMX သည် ကုဒ်၏အစပြုခြင်းအပိုင်းကို အပ်ဒိတ်လုပ်သည်။
STM32CubeMX ဖြင့် စိတ်ကြိုက်ပရောဂျက်တစ်ခုကို ဖော်ဆောင်ရန်၊ အဆင့်ဆင့်လုပ်ဆောင်ပါ-
- pinout-conflict ဖြေရှင်းသူ၊ နာရီ-သစ်ပင်ဆက်တင်အထောက်အကူ၊ ပါဝါသုံးစွဲမှုဂဏန်းတွက်စက်နှင့် MCU အရံဖွဲ့စည်းမှု (ဥပမာ GPIO သို့မဟုတ် USART ကဲ့သို့) ကို အသုံးပြု၍ လိုအပ်သော မြှုပ်သွင်းဆော့ဖ်ဝဲအားလုံးကို ပြင်ဆင်သတ်မှတ်ပါ။
- ရွေးချယ်ထားသောဖွဲ့စည်းပုံအပေါ်အခြေခံ၍ ကနဦးသတ်မှတ်ခြင်း C ကုဒ်ကို ဖန်တီးပါ။ ဤကုဒ်သည် ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာ ပတ်ဝန်းကျင်အများအပြားတွင် အသုံးပြုရန် အသင့်ဖြစ်နေပါပြီ။ အသုံးပြုသူကုဒ်ကို နောက်ကုဒ်မျိုးဆက်တွင် သိမ်းဆည်းထားသည်။
STM32CubeMX နှင့်ပတ်သက်သော နောက်ထပ်အချက်အလက်များအတွက်၊ STM32 ဖွဲ့စည်းမှုပုံစံနှင့် စတင်ခြင်း C ကုဒ်ထုတ်လုပ်ခြင်း (UM32) အတွက် အသုံးပြုသူလက်စွဲ STM1718CubeMX ကို ကိုးကားပါ။
ယာဉ်မောင်းလျှောက်လွှာ
HAL လျှောက်လွှာ
ဤကဏ္ဍတွင် STM32CubeWL3 ကို အသုံးပြု၍ စိတ်ကြိုက် HAL အပလီကေးရှင်းတစ်ခု ဖန်တီးရန် လိုအပ်သည့် အဆင့်များကို ဖော်ပြသည်-
- ပရောဂျက်တစ်ခုဖန်တီးပါ။
ပရောဂျက်အသစ်တစ်ခုဖန်တီးရန် \Projects\< STM32xxx_yyy>\Templates အောက်ရှိ ဘုတ်တစ်ခုစီအတွက် ပေးထားသော Template ပရောဂျက်မှ စတင်ပါ သို့မဟုတ် \Projects\ အောက်ရှိ မည်သည့်ပရောဂျက်မှဖြစ်စေ၊ \exampl es သို့မဟုတ် \Projects\ \Applications (နေရာတွင် ဘုတ်အဖွဲ့အမည်ကိုရည်ညွှန်းသည်။) Template ပရောဂျက်သည် ဗလာဖြစ်ပြီး ပင်မကွင်းဆက်လုပ်ဆောင်ချက်ကို ပံ့ပိုးပေးသည်။ သို့သော်၊ STM32CubeWL32 ပရောဂျက်ဆက်တင်များကို နားလည်ရန် ကောင်းသောအစမှတ်ဖြစ်သည်။ နမူနာပုံစံတွင် အောက်ပါလက္ခဏာများ ရှိသည်။- ၎င်းတွင် HAL အရင်းအမြစ်ကုဒ်၊ CMSIS နှင့် BSP ဒရိုက်ဘာများ ပါ၀င်သည်၊ ၎င်းသည် ပေးထားသောဘုတ်ပေါ်တွင် ကုဒ်တစ်ခုတည်ဆောက်ရန် လိုအပ်သော အနိမ့်ဆုံးအစိတ်အပိုင်းများဖြစ်သည်။
- ၎င်းတွင် Firmware အစိတ်အပိုင်းအားလုံးအတွက် ပါဝင်သောလမ်းကြောင်းများ ပါဝင်သည်။
- ၎င်းသည် ပံ့ပိုးထားသော STM32WL3x ထုတ်ကုန်လိုင်းစက်ပစ္စည်းများကို CMSIS နှင့် HAL ဒရိုက်ဘာများကို မှန်ကန်စွာပြင်ဆင်သတ်မှတ်နိုင်စေခြင်းဖြင့် သတ်မှတ်သည်။
- ၎င်းသည် အဆင်သင့်အသုံးပြုနိုင်သော အသုံးပြုသူကို ထောက်ပံ့ပေးသည်။ fileအောက်တွင်ဖော်ပြထားသည့်အတိုင်း ကြိုတင်ပြင်ဆင်ထားပါသည်။
- HAL သည် Arm® core SysTick ဖြင့် မူရင်းအချိန်အခြေခံဖြင့် စတင်ခဲ့သည်။
- SysTick ISR ကို HAL_Delay() ရည်ရွယ်ချက်အတွက် အကောင်အထည်ဖော်ခဲ့သည်။
မှတ်ချက်- ရှိပြီးသားပရောဂျက်တစ်ခုကို အခြားတစ်နေရာသို့ ကူးယူသည့်အခါတွင် ပါဝင်သောလမ်းကြောင်းအားလုံးကို မွမ်းမံထားကြောင်း သေချာပါစေ။
- Firmware အစိတ်အပိုင်းများကို စီစဉ်သတ်မှတ်ပါ။
HAL နှင့် အလယ်တန်းဆော့ဖ်ဝဲ အစိတ်အပိုင်းများသည် ခေါင်းစီးတွင် ကြေညာထားသော macros #define ကို အသုံးပြု၍ တည်ဆောက်ချိန်အတွင်း ဖွဲ့စည်းမှုပုံစံ ရွေးချယ်စရာများ ကမ်းလှမ်းသည် file. နမူနာပုံစံဖွဲ့စည်းမှု file ပရောဂျက်ဖိုင်တွဲသို့ ကူးယူရမည့် အစိတ်အပိုင်းတစ်ခုစီအတွင်း ပံ့ပိုးပေးသည် (များသောအားဖြင့် ဖွဲ့စည်းမှုပုံစံ file xxx_conf_template.h ဟု အမည်ပေးထားပြီး၊ ၎င်းကို ပရောဂျက်ဖိုင်တွဲသို့ ကူးယူသည့်အခါ အပိုင်းအစ _template ကို ဖယ်ရှားရန် လိုအပ်သည်)။ ဖွဲ့စည်းမှု file configuration option တစ်ခုစီ၏ အကျိုးသက်ရောက်မှုကို နားလည်ရန် လုံလောက်သော အချက်အလက်ကို ပေးပါသည်။ အစိတ်အပိုင်းတစ်ခုစီအတွက် ပေးထားသော စာရွက်စာတမ်းများတွင် ပိုမိုအသေးစိတ်အချက်အလက်များကို ရရှိနိုင်ပါသည်။ - HAL စာကြည့်တိုက်ကို စတင်ပါ။
ပင်မပရိုဂရမ်သို့ ခုန်ဆင်းပြီးနောက်၊ အောက်ပါလုပ်ဆောင်စရာများကို လုပ်ဆောင်ပေးသည့် HAL စာကြည့်တိုက်ကို စတင်ရန်အတွက် အပလီကေးရှင်းကုဒ်သည် HAL_Init() API ကို ခေါ်ရပါမည်။- flash memory prefetch နှင့် SysTick တို့၏ ဦးစားပေး အစီအစဉ်ကို နှောင့်ယှက်သည် (stm3 2wl3x_hal_conf.h တွင် သတ်မှတ်ထားသော မက်ခရိုမှတဆင့်)။
- stm32wl3x_hal_conf.h တွင် သတ်မှတ်ထားသော SysTick ကြားဖြတ်ဦးစားပေး TICK_INT_PRIO တွင် မီလီစက္ကန့်တိုင်း ကြားဖြတ်တစ်ခု ဖန်တီးရန် SysTick ၏ ဖွဲ့စည်းမှုပုံစံ။
- NVIC အဖွဲ့၏ ဦးစားပေး 0 ကို သတ်မှတ်ခြင်း။
- stm32wl3x_hal_msp.c အသုံးပြုသူတွင် သတ်မှတ်ထားသော HAL_MspInit() ပြန်လည်ခေါ်ဆိုမှုလုပ်ဆောင်ချက် file ကမ္ဘာလုံးဆိုင်ရာ အဆင့်နိမ့် ဟာ့ဒ်ဝဲ အစပြုခြင်းများကို လုပ်ဆောင်ရန်။
- စနစ်နာရီကို စီစဉ်သတ်မှတ်ပါ။
အောက်တွင်ဖော်ပြထားသော API နှစ်ခုကိုခေါ်ဆိုခြင်းဖြင့် စနစ်နာရီပုံစံဖွဲ့စည်းမှုကို လုပ်ဆောင်သည်-- HAL_RCC_OscConfig(): ဤ API သည် အတွင်းပိုင်းနှင့် ပြင်ပ oscillator များကို စီစဉ်ပေးသည်။ အသုံးပြုသူသည် oscillator တစ်ခု သို့မဟုတ် အားလုံးကို configure လုပ်ရန် ရွေးချယ်သည်။
- HAL_RCC_ClockConfig(): ဤ API သည် စနစ်နာရီရင်းမြစ်၊ flash memory latency နှင့် AHB နှင့် APB ကြိုတင်စကေးကိရိယာများကို စီစဉ်ပေးသည်။
- အရံကို စတင်ပါ။
- ပထမဦးစွာ peripheral initialization function ကိုရေးပါ။ အောက်ပါအတိုင်းလုပ်ဆောင်ပါ။
- အရံနာရီကို ဖွင့်ပါ။
- အရံ GPIO များကို စီစဉ်သတ်မှတ်ပါ။
- DMA ချန်နယ်ကို စီစဉ်သတ်မှတ်ပြီး DMA အနှောင့်အယှက်ကို ဖွင့်ပါ (လိုအပ်ပါက)။
- အရံအတားအဆီးကို ဖွင့်ပါ (လိုအပ်ပါက)။
- လိုအပ်ပါက လိုအပ်သော ကြားဖြတ်ကိုင်တွယ်သူများ (အရံနှင့် DMA) ကိုခေါ်ဆိုရန် stm32xxx_it.c ကို တည်းဖြတ်ပါ။
- အရံအနှောင့်အယှက်ဖြစ်စေသော သို့မဟုတ် DMA ကို အသုံးပြုမည်ဆိုပါက ပြန်လည်ခေါ်ဆိုမှု လုပ်ငန်းစဉ်ကို ပြီးအောင်ရေးပါ။
- user main.c file၊ အရံလက်ကိုင်ဖွဲ့စည်းပုံကို အစပြုပြီး အစွန်အဖျားကို အစပြုရန်အတွက် အရံကို အစပြုခြင်း လုပ်ဆောင်ချက်ကို ခေါ်ပါ။
- အက်ပလီကေးရှင်းကို ဖန်တီးပါ။
ဒီ s မှာtage၊ စနစ်သည် အဆင်သင့်ဖြစ်ပြီး အသုံးပြုသူ အပလီကေးရှင်းကုဒ် ဖွံ့ဖြိုးတိုးတက်မှုကို စတင်နိုင်သည်။
HAL သည် ကိရိယာတန်ဆာပလာကို စီစဉ်သတ်မှတ်ရန် အလိုလိုသိမြင်နိုင်သော API များကို ပံ့ပိုးပေးသည်။ ၎င်းသည် လျှောက်လွှာလိုအပ်ချက်များကို လိုက်လျောညီထွေဖြစ်စေရန်အတွက် မဲဆွယ်ခြင်း၊ နှောင့်ယှက်ခြင်းနှင့် DMA ပရိုဂရမ်းမင်းပုံစံကို ပံ့ပိုးပေးသည်။ အရံကိရိယာတစ်ခုစီကို အသုံးပြုနည်းအသေးစိတ်အတွက်၊ ကြွယ်ဝသော ex ကို ကိုးကားပါ။ampSTM32CubeWL3 MCU ပက်ကေ့ချ်တွင် ပံ့ပိုးပေးထားသည်။
သတိပြုရန်-
မူရင်း HAL အကောင်အထည်ဖော်မှုတွင်၊ SysTick timer ကို timebase အဖြစ်အသုံးပြုသည်- ၎င်းသည် ပုံမှန်အချိန်ကြားကာလများတွင် အနှောင့်အယှက်များကို ထုတ်ပေးသည်။ အကယ်၍ HAL_Delay() ကို အနားသတ် ISR လုပ်ငန်းစဉ်မှ ခေါ်ဆိုပါက၊ SysTick နှောင့်ယှက်မှုသည် အရံကြားဖြတ်တောက်ခြင်းထက် ပိုမိုဦးစားပေး (ဂဏန်းအရေအတွက်နည်း) ရှိကြောင်း သေချာပါစေ။ မဟုတ်ပါက ခေါ်ဆိုသူ ISR လုပ်ငန်းစဉ်သည် ဖြစ်ပါ သည်။
ပိတ်ဆို့ထားသည်။ အသုံးပြုသူရှိ အခြားအကောင်အထည်ဖော်မှုများတွင် အစားထိုးမှုဖြစ်နိုင်ချေရှိစေရန် timebase configurations သက်ရောက်သည့်လုပ်ဆောင်ချက်များကို __weak အဖြစ်ကြေငြာထားသည်။ file (ဥပမာ၊ ယေဘူယျအားဖြင့် အချိန်တိုင်းကိရိယာကို အသုံးပြုခြင်း။ample သို့မဟုတ် အခြားအချိန်အရင်းအမြစ်)။
အသေးစိတ်အချက်အလက်များအတွက်၊ HAL_TimeBase ဟောင်းကို ကိုးကားပါ။ampလဲ့
LL လျှောက်လွှာ
ဤကဏ္ဍသည် STM32CubeWL3 ကို အသုံးပြု၍ စိတ်ကြိုက် LL အပလီကေးရှင်းတစ်ခု ဖန်တီးရန် လိုအပ်သည့် အဆင့်များကို ဖော်ပြသည်။
- ပရောဂျက်တစ်ခုဖန်တီးပါ။
ပရောဂျက်အသစ်ဖန်တီးရန် \Projects\ အောက်ရှိ ဘုတ်တစ်ခုစီအတွက် ပေးထားသော Templates_LL ပရောဂျက်မှ စတင်ပါ။ \Templates_LL သို့မဟုတ် \Projects\ အောက်ရှိ မည်သည့်ပရောဂျက်မှမဆို၊ \E xamples_LL ( NUCLEO-WL32CC33) ကဲ့သို့သော ဘုတ်အဖွဲ့အမည်ကို ရည်ညွှန်းသည်။
နမူနာပရောဂျက်သည် STM32CubeWL3 အတွက် ပရောဂျက်ဆက်တင်များကို နားလည်ရန် ကောင်းသောအစမှတ်တစ်ခုဖြစ်သည့် ဗလာပင်မကွင်းပတ်လုပ်ဆောင်ချက်ကို ပံ့ပိုးပေးပါသည်။ နမူနာပုံစံ၏ အဓိကလက္ခဏာများမှာ အောက်ပါအတိုင်းဖြစ်သည်။- ၎င်းတွင် ပေးထားသောဘုတ်တစ်ခုပေါ်ရှိ ကုဒ်ကိုတည်ဆောက်ရန် လိုအပ်သော အနိမ့်ဆုံးအစိတ်အပိုင်းများဖြစ်သည့် LL နှင့် CMSIS ဒရိုက်ဗာများ၏ အရင်းအမြစ်ကုဒ်များ ပါရှိသည်။
- ၎င်းတွင် လိုအပ်သော Firmware အစိတ်အပိုင်းများအားလုံးအတွက် ပါဝင်သောလမ်းကြောင်းများ ပါရှိသည်။
- ၎င်းသည် ပံ့ပိုးထားသော STM32WL3x ထုတ်ကုန်လိုင်းစက်ပစ္စည်းကို ရွေးချယ်ပြီး CMSIS နှင့် LL ယာဉ်မောင်းများ၏ မှန်ကန်သောဖွဲ့စည်းပုံစနစ်ကို ခွင့်ပြုသည်။
- အဆင်သင့်အသုံးပြုနိုင်သော အသုံးပြုသူကို ထောက်ပံ့ပေးသည်။ fileအောက်ပါအတိုင်း ကြိုတင်ပြင်ဆင်ထားသော s
- main.h- LED နှင့် USER_BUTTON အဓိပ္ပါယ်ဖွင့်ဆိုချက် အလွှာ။
- main.c- အများဆုံးအကြိမ်ရေအတွက် စနစ်နာရီပုံစံဖွဲ့စည်းမှု။
- LL ex ကို ပို့ပါ။ample-
- Templates_LL ဖိုဒါကို ကူး/ကူးထည့်ခြင်း – ကနဦးရင်းမြစ်ကို ထိန်းသိမ်းရန် – သို့မဟုတ် လက်ရှိ Templa tes_LL ပရောဂျက်ကို တိုက်ရိုက် မွမ်းမံပါ။
- ထို့နောက်၊ porting သည် Templates_LL ကို အစားထိုးရာတွင် အဓိက ပါဝင်ပါသည်။ files ထွက၊amples_LL ပစ်မှတ်ထားသော ပရောဂျက်။
- ဘုတ်အဖွဲ့၏ အစိတ်အပိုင်းများအားလုံးကို သိမ်းဆည်းထားပါ။ ရှင်းရှင်းလင်းလင်းဖြစ်ရခြင်းအတွက်၊ ဘုတ်အဖွဲ့၏ အစိတ်အပိုင်းများကို အတိအကျသတ်မှတ်ထားသည်။ tags:
ထို့ကြောင့် ပင်မပို့ရန် အဆင့်များမှာ အောက်ပါအတိုင်းဖြစ်သည်။
- stm32wl3x_it.h ကို အစားထိုးပါ။ file.
- stm32wl3x_it.c ကို အစားထိုးပါ။ file.
- main.h ကို အစားထိုးပါ။ file ၎င်းကို အပ်ဒိတ်လုပ်ပါ- LED နှင့် အသုံးပြုသူခလုတ်၏ အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကို BOARD SPECIFIC CONFIGURATION အောက်တွင် LL template ကို ထားရှိပါ။ tags.
- main.c ကို အစားထိုးပါ။ file ၎င်းကို အပ်ဒိတ်လုပ်ပါ။
- BOARD SPECIFIC CONFIGURATION အောက်တွင် SystemClock_Config() LL စံပလိတ်လုပ်ဆောင်ချက်၏ နာရီပုံစံကို ထားရှိပါ။ tags.
- LED အဓိပ္ပါယ်ပေါ်မူတည်၍ LDx ဖြစ်ပေါ်မှုတစ်ခုစီကို ၎င်းတွင်ရရှိနိုင်သော အခြား LDy ဖြင့် အစားထိုးပါ။ file main.h.
ဒီလိုမွမ်းမံမှုတွေဆိုရင်၊ample သည် ပစ်မှတ်ဘုတ်ပေါ်တွင် ပြေးသည်။
RF အပလီကေးရှင်းများ၊ သရုပ်ပြမှုများ၊ နှင့် ဥပမာများamples
မတူညီသော RF အသုံးချပရိုဂရမ်များ၊ သရုပ်ပြမှုများ၊ နှင့် ဥပမာများamples ကို STM32CubeWL3 ပက်ကေ့ဂျ်တွင် ရနိုင်ပါသည်။ ၎င်းတို့ကို အောက်ဖော်ပြပါ ကဏ္ဍနှစ်ခုတွင် ဖော်ပြထားပါသည်။
Sub-GHz ဟောင်းamples နှင့်ဆန္ဒပြပွဲများ
ဒါတွေက examples သည် MRSUBG နှင့် LPAWUR ရေဒီယို ဆက်စပ်ပစ္စည်းများ၏ အဓိကအင်္ဂါရပ်များကို သရုပ်ပြသည်။ ဒါတွေက examples များကို အောက်ပါအတိုင်း ရရှိနိုင်ပါသည်။
- ပရောဂျက်များ\NUCLEO-WL33CC\Examples\MRSUBG
- ပရောဂျက်များ\NUCLEO-WL33CC\Examples\LPAWUR
- ပရောဂျက်များ\NUCLEO-WL33CC\Demonstrations\MRSUBG
- ပရောဂျက်များ\NUCLEO-WL33CC\Demonstrations\LPAWUR
ရည်းစားဟောင်းတိုင်းample သို့မဟုတ် သရုပ်ပြခြင်းတွင် ယေဘူယျအားဖြင့် Tx နှင့် Rx ဟုခေါ်သော ပရိုဂရမ်နှစ်ခုပါဝင်ပြီး transmitter နှင့် receiver အဖြစ် အသီးသီးလုပ်ဆောင်နေသည်-
- Examples/MRSUBG
- MRSUBG_802_15_4- စံ 802.15.4 မှသတ်မှတ်ထားသော ရုပ်ပိုင်းဆိုင်ရာအလွှာ၏ အကောင်အထည်ဖော်မှုတစ်ခု။ ၎င်းသည် 802.15.4 packets များကို ထုတ်လွှင့်ရန် သို့မဟုတ် လက်ခံရန် ရေဒီယိုကို မည်သို့ configure လုပ်ရမည်ကို ပြသသည်။
- MRSUBG_BasicGeneric- STM32WL3x MR_SUBG အခြေခံပက်ကတ်များ လဲလှယ်မှု။
- MRSUBG_Chat- စက်ပစ္စည်းတစ်ခုတည်းတွင် Tx နှင့် Rx ကိုအသုံးပြုပုံကိုပြသသည့် ရိုးရှင်းသောအပလီကေးရှင်းတစ်ခု။
- MRSUBG_DatabufferHandler- ဟောင်းampDatabuffer 0 နှင့် 1 မှ မည်သို့လဲလှယ်ရမည်ကို ပြသသော le။
- MRSUBG_Sequencer AutoAck- ဟောင်းတစ်ခုamppacket acknowledgments (ACKs) ကို အလိုအလျောက် ပို့ပြီး လက်ခံရယူသည်။
- MRSUBG_WMBusSTD- WM-Bus မက်ဆေ့ချ်များ ဖလှယ်မှု။
- WakeupRadio- ဟောင်းampLPAWUR ရေဒီယို အရံအတားကို စမ်းသပ်ရန်။
- ဆန္ဒပြပွဲများ/MRSUBG
- MRSUBG_RTC_Button_TX- ဤဥပမာample သည် ဘောင်တစ်ခုပေးပို့ရန် သို့မဟုတ် RTC timer သက်တမ်းကုန်ဆုံးပြီးနောက် PB2 ကိုနှိပ်ခြင်းဖြင့် SoC ကို နက်ရှိုင်းသောရပ်မုဒ်တွင် မည်သို့သတ်မှတ်ရမည်နည်း။
- MRSUBG_Sequencer_Sniff- ဤဥပမာample သည် MRSUBG sequencer ကို sniff မုဒ်တွင် လည်ပတ်ရန် မည်သို့သတ်မှတ်ရမည်ကို ပြသသည်။ ဒီ example လက်ခံသူဘက်မှ သရုပ်ပြပြီး အခြားကိရိယာကို ထုတ်လွှင့်သူအဖြစ် လိုအပ်သည်။
- MRSUBG_Timer- အပလီကေးရှင်းသည် MRSUBG timer (autoreload ဖြင့်) အကြိမ်များစွာကို မတူညီသောအချိန်အပိုင်းအခြားများဖြင့် အချိန်ဇယားဆွဲသည်။
- MRSUBG_WakeupRadio_Tx- ဤဥပမာample သည် ဘောင်တစ်ခုပေးပို့ရန် PB2 ကိုနှိပ်ခြင်းဖြင့် SoC ကို နက်ရှိုင်းသောရပ်တန့်မုဒ်တွင် မည်သို့သတ်မှတ်ရမည်နည်း။ ဒီ example သည် transmitter side ကိုသရုပ်ပြပြီး LPAWUR လက်ခံသူအဖြစ် အခြားစက်ပစ္စည်းတစ်ခု လိုအပ်ပါသည်။ လက်ခံသူ ဟောင်းample သည် NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx ဖိုင်တွဲအောက်တွင် တည်ရှိသည်။
- ဆန္ဒပြပွဲများ/LPAWUR
- LPAWUR_WakeupRadio_Rx- ဤဥပမာample သည် ဘောင်တစ်ခုရောက်ရှိပြီး မှန်ကန်စွာလက်ခံရရှိသောအခါ SoC ကို နိုးကြားရန် LPAWUR ကို နက်ရှိုင်းသောရပ်မုဒ်တွင် မည်သို့သတ်မှတ်ရမည်ကို le ရှင်းပြသည်။ ဒီ example လက်ခံသူဘက်မှ သရုပ်ပြပြီး အခြားကိရိယာကို ထုတ်လွှင့်သူအဖြစ် လိုအပ်သည်။ transmitter example သည် NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx ဖိုင်တွဲအောက်တွင် တည်ရှိပါသည်။
Sigfox™ အက်ပ်
ဤအပလီကေးရှင်းများသည် Sigfox™ ဇာတ်လမ်းကို အကောင်အထည်ဖော်ပုံနှင့် ရရှိနိုင်သော Sigfox™ API များကို အသုံးပြုနည်းကို ပြသသည်။ ၎င်းတို့ကို ပရောဂျက်လမ်းကြောင်း Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI- ဤအပလီကေးရှင်းသည် မက်ဆေ့ချ်များပေးပို့ရန်နှင့် ကြိုတင်အတည်ပြုစစ်ဆေးမှုများလုပ်ဆောင်ရန် Sigfox™ ပရိုတိုကောကိုအသုံးပြုသည့် ညွှန်ကြားချက်များပေးပို့ရန် command-line interface (CLI) ကိုအသုံးပြုပုံကို ပြသသည်။
- Sigfox_PushButton- ဤအပလီကေးရှင်းသည် STM32WL33xx Sigfox™ စက်၏ ရေဒီယိုစွမ်းရည်များကို အကဲဖြတ်ရန် ခွင့်ပြုသည်။ PB1 ကိုနှိပ်ခြင်းဖြင့် စမ်းသပ်မှု Sigfox™ frame ကို ပို့လွှတ်ပါသည်။
အမြဲမေးလေ့ရှိသောမေးခွန်းများ
- LL drivers တွေအစား HAL ကို ဘယ်အချိန်မှာသုံးရမလဲ။
HAL ဒရိုက်ဘာများသည် သယ်ဆောင်ရလွယ်ကူသောအဆင့်ဖြင့် မြင့်မားသောအဆင့်နှင့် လုပ်ဆောင်ချက်များကို ဦးတည်ထားသော API များကို ပေးဆောင်ပါသည်။ သုံးစွဲသူများအတွက် ထုတ်ကုန် သို့မဟုတ် အရံရှုပ်ထွေးမှုကို ဝှက်ထားသည်။
LL ဒရိုက်ဘာများသည် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ထားသော်လည်း သယ်ဆောင်ရလွယ်ကူမှုနည်းသော အလွှာနိမ့်အဆင့် API များကို ပေးဆောင်သည်။ ၎င်းတို့သည် ထုတ်ကုန် သို့မဟုတ် IP သတ်မှတ်ချက်များကို နက်ရှိုင်းစွာ သိရှိရန် လိုအပ်သည်။ - HAL နှင့် LL ယာဉ်မောင်းများကို တွဲသုံးနိုင်ပါသလား။ ဟုတ်ရင် ကန့်သတ်ချက်တွေက ဘာတွေလဲ။
HAL နှင့် LL driver နှစ်မျိုးလုံးကို သုံးနိုင်သည်။ အရံကနဦးအဆင့်အတွက် HAL ကိုသုံးပါ၊ ထို့နောက် LL ယာဉ်မောင်းများဖြင့် I/O လုပ်ဆောင်ချက်များကို စီမံပါ။
HAL နှင့် LL အကြား အဓိက ကွာခြားချက်မှာ HAL ဒရိုက်ဘာများသည် လည်ပတ်မှုစီမံခန့်ခွဲမှုအတွက် လက်ကိုင်များကို ဖန်တီးအသုံးပြုရန် လိုအပ်ပြီး LL ယာဉ်မောင်းများသည် အရံမှတ်ပုံတင်များပေါ်တွင် တိုက်ရိုက်လုပ်ဆောင်နေချိန်တွင် ဖြစ်သည်။ HAL နှင့် LL ရောစပ်ခြင်းကို Ex တွင် သရုပ်ဖော်ထားသည်။amples_MIX ဟောင်းamples - LL အစပြုခြင်း API များကို မည်သို့ဖွင့်ထားသနည်း။
LL အစပြုခြင်း API များနှင့် ဆက်စပ်အရင်းအမြစ်များ (ဖွဲ့စည်းပုံများ၊ စာသားများနှင့် ရှေ့ပြေးပုံစံများ) ၏ အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကို USE_FULL_LL_DRIVER စုစည်းမှုခလုတ်ဖြင့် သတ်မှတ်ပေးထားသည်။
LL အစပြုခြင်း API များကို အသုံးပြုနိုင်ရန်၊ toolchain compiler preprocessor တွင် ဤခလုတ်ကို ထည့်ပါ။ - MRSUBG/LPAWUR အရံ ex အတွက် နမူနာ ပရောဂျက်ရှိပါသလား။amples?
MRSUBG သို့မဟုတ် LPAWUR ဟောင်းကို ဖန်တီးရန်ample ပရောဂျက်၊ \Pr ojects\NUCLEO-WL33CC\Ex အောက်တွင် ပေးထားသော အရိုးစုပရောဂျက်မှ စတင်ပါamples\MRSUBG သို့မဟုတ် \Projects\NUCLEO-WL33CC\Examples\LPAWUR သို့မဟုတ် ဤတူညီသောလမ်းညွှန်များအောက်ရှိ မည်သည့်ပရောဂျက်မှမဆို။ - STM32CubeMX သည် ထည့်သွင်းထားသောဆော့ဖ်ဝဲလ်အပေါ်အခြေခံ၍ ကုဒ်ကို မည်သို့ထုတ်လုပ်နိုင်သနည်း။
STM32CubeMX တွင် ၎င်းတို့၏ အရံများနှင့် ဆော့ဖ်ဝဲလ်များ အပါအဝင် STM32 မိုက်ခရိုကွန်ထရိုလာများ၏ ပါ၀င်သော အသိပညာ ရှိပြီး ၎င်းသည် သုံးစွဲသူအား ဂရပ်ဖစ်ပိုင်းဆိုင်ရာ ကိုယ်စားပြုမှုကို ပေးစွမ်းနိုင်ပြီး *.h သို့မဟုတ် *.c ကို ထုတ်လုပ်နိုင်သည် files အသုံးပြုသူ၏ဖွဲ့စည်းမှုအပေါ်အခြေခံသည်။
ပြန်လည်ပြင်ဆင်မှုမှတ်တမ်း
ဇယား ၁။ စာရွက်စာတမ်း ပြန်လည်ပြင်ဆင်မှုမှတ်တမ်း
စာရွက်စာတမ်းများ / အရင်းအမြစ်များ
![]() |
ST STM32WL3x ဆော့ဖ်ဝဲလ်ပက်ကေ့ချ် [pdf] ညွှန်ကြားချက်များ STM32WL3x ဆော့ဖ်ဝဲလ်ပက်ကေ့ခ်ျ၊ STM32WL3x၊ ဆော့ဖ်ဝဲလ်ပက်ကေ့ခ်ျ၊ ပက်ကေ့ |