STM32WL3x-loigo

STM32WL3x програм хангамжийн багц

STM32WL3x-Програм хангамжийн багц -БҮТЭЭГДЭХҮҮН

Үзүүлэлтүүд

  • Бүтээгдэхүүний нэр: STM32CubeWL3 програм хангамжийн багц
  • Тохиромжтой байдал: STM32WL3x микроконтроллер
  • Гол онцлогууд:
    • Бага давхарга (LL) болон техник хангамжийн хийсвэр давхарга (HAL) API
    • SigfoxTM, FatFS, болон FreeRTOSTM цөмийн дунд програмын бүрэлдэхүүн хэсгүүд
    • Өргөдөл, жагсаал

Бүтээгдэхүүнийг ашиглах заавар

Эхлэх
STM32CubeWL3 програм хангамжийн багцыг ашиглаж эхлэхийн тулд дараах алхмуудыг дагана уу:

  1. Програм хангамжийн багцыг албан ёсны газраас татаж авна уу webсайт.
  2. Шаардлагатай хөгжүүлэлтийн орчинг (жишээ нь, STM32CubeIDE, EWARM, MDK-ARM) суулгана уу.
  3. Экс рүү хандаарайampзааврын дагуу өгсөн програмууд болон програмууд.

STM32CubeWL3 Архитектур дууссанview
STM32CubeWL3 програм хангамжийн багц нь гурван үндсэн түвшинд бүтээгдсэн

  • 0-р түвшин: Техник хангамжийн хийсвэр давхарга (HAL) болон BSP драйверууд.
  • 1-р түвшин: Програм, номын сан, протоколд суурилсан бүрэлдэхүүн хэсгүүд.

Байнга асуудаг асуултууд (FAQ)

А: STM32CubeWL3 програм хангамжийн багцын гол онцлог нь юу вэ?
Х: Үндсэн функцууд нь бага түвшний болон HAL API, SigfoxTM, FatFS, FreeRTOSTM цөм зэрэг дунд програмын бүрэлдэхүүн хэсгүүд, програмууд болон үзүүлэнгүүд орно.

Танилцуулга

STM32Cube нь STMicroelectronics-ийн анхны санаачилга бөгөөд хөгжүүлэлтийн хүчин чармайлт, цаг хугацаа, зардлыг бууруулах замаар дизайнерын бүтээмжийг мэдэгдэхүйц нэмэгдүүлэх зорилготой юм. STM32Cube нь STM32 багцыг бүхэлд нь хамардаг.

STM32Cube нь:

  • Төсөл боловсруулахаас эхлээд хэрэгжүүлэх хүртэлх хэрэглэгчдэд ээлтэй програм хангамж хөгжүүлэх хэрэгслүүдийн багц бөгөөд үүнд:
    • STM32CubeMX нь график шидтэнг ашиглан C эхлүүлэх кодыг автоматаар үүсгэх боломжийг олгодог график програм хангамжийн тохиргооны хэрэгсэл юм.
    • STM32CubeIDE нь захын тохиргоо, код үүсгэх, код эмхэтгэх, дибаг хийх функц бүхий бүгдийг нэг дор хөгжүүлэх хэрэгсэл юм.
    • STM32CubeCLT нь код эмхэтгэх, самбарын програмчлал болон дибаг хийх функц бүхий командын мөрийг боловсруулах хэрэгслийн багц юм.
    • STM32CubeProgrammer (STM32CubeProg), график болон командын мөрийн хувилбаруудад байдаг програмчлалын хэрэгсэл
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), бодит цаг хугацаанд STM32 програмын зан байдал, гүйцэтгэлийг нарийн тохируулах хүчирхэг хяналтын хэрэгсэл.
  • STM32Cube MCU болон MPU багцууд, микроконтроллер болон микропроцессорын цуврал тус бүрт тусгайлан зориулсан цогц програм хангамжийн платформууд (STM32WL3x бүтээгдэхүүний шугамд зориулсан STM32CubeWL3 гэх мэт), үүнд:
    • STM32Cube техник хангамжийн хийсвэр давхарга (HAL) нь STM32 багцын хамгийн их зөөврийг баталгаажуулдаг.
    • STM32Cube бага түвшний API-ууд нь техник хангамжийг хэрэглэгчийн өндөр түвшний хяналтаар хамгийн сайн гүйцэтгэл, ул мөрийг баталгаажуулдаг.
    • FreeRTOS™ цөм, FatFS, болон Sigfox™ зэрэг дундын програм хангамжийн бүрэлдэхүүн хэсгүүдийн тогтвортой багц
    • Захын болон хэрэглээний иж бүрэн багц бүхий бүх суулгагдсан програм хангамжийн хэрэгслүүдamples
  • STM32Cube MCU болон MPU багцуудын функцийг нөхөх програм хангамжийн бүрэлдэхүүн хэсгүүдийг агуулсан STM32Cube өргөтгөлийн багцууд:
    • Дунд програмын өргөтгөлүүд болон хэрэглээний давхаргууд
    • Examples зарим тодорхой STMicroelectronics хөгжүүлэлтийн самбар дээр ажиллаж байна

Энэхүү хэрэглэгчийн гарын авлага нь STM32CubeWL3 MCU багцыг хэрхэн ашиглаж эхлэх талаар тайлбарласан болно.
2-р бүлэгт STM32CubeWL3-ийн үндсэн шинж чанаруудыг тайлбарласан бөгөөд 3-р хэсэгт илүү дэлгэрэнгүй мэдээллийг өгдөг.view түүний архитектур болон MCU багц бүтэц.

Ерөнхий мэдээлэл

STM32CubeWL3 нь Arm® Cortex®‑M32+ процессор дээр суурилсан STM3WL0x бүтээгдэхүүний шугамын микроконтроллерууд дээр Sigfox™ хоёртын файлуудыг багтаасан дэд GHz-ийн үзүүлэх програмуудыг ажиллуулдаг.
STM32WL3x микроконтроллерууд нь STMicroelectronics-ийн хамгийн сүүлийн үеийн дэд GHz-д нийцсэн RF радио захын төхөөрөмжийг суурилуулсан бөгөөд энэ нь хэт бага эрчим хүч зарцуулалт, маш сайн радио гүйцэтгэл, батерейны ашиглалтын хугацааг уртасгах боломжийг олгодог.
Анхаарна уу: Arm нь Arm Limited (эсвэл түүний охин компаниудын) АНУ болон/эсвэл өөр газар бүртгэгдсэн худалдааны тэмдэг юм.

STM32CubeWL3 үндсэн шинж чанарууд

  • STM32CubeWL3 MCU багц нь Arm® Cortex®‑M32+ процессор дээр суурилсан STM32 0 битийн микроконтроллерууд дээр ажилладаг. Энэ нь STM32WL3x бүтээгдэхүүний шугамын микроконтроллеруудад зориулсан програм боловсруулахад шаардлагатай бүх ерөнхий суулгагдсан програм хангамжийн бүрэлдэхүүн хэсгүүдийг нэг багцад цуглуулдаг.
  • Багц нь микроконтроллерийн техник хангамжийг хамарсан бага давхарга (LL) ба техник хангамжийн хийсвэрлэх давхарга (HAL) API-ууд болон өргөн хүрээний багцуудыг агуулдаг.ampSTMicroelectronics самбар дээр ажиллаж байгаа les. HAL болон LL API-уудыг хэрэглэгчдэд тав тухтай байлгах үүднээс нээлттэй эхийн BSD лицензээр авах боломжтой. Энэ нь мөн Sigfox™, FatFS, болон FreeRTOS™ цөмийн дундын програм хангамжийн бүрэлдэхүүн хэсгүүдийг агуулдаг.
  • STM32CubeWL3 MCU багц нь мөн түүний бүх дунд програмын бүрэлдэхүүн хэсгүүдийг хэрэгжүүлэх хэд хэдэн програм, үзүүлэнгүүдийг өгдөг.
  • STM32CubeWL3 MCU багцын бүрэлдэхүүн хэсгийн бүтцийг 1-р зурагт үзүүлэв.

Зураг 1. STM32CubeWL3 MCU багцын бүрэлдэхүүн хэсгүүд 

STM32WL3x-Програм хангамжийн багц (2)

STM32CubeWL3 архитектур дууссанview

STM32CubeWL3 MCU багц шийдэл нь Зураг 2-т тайлбарласны дагуу хялбар харилцан үйлчилдэг бие даасан гурван түвшний эргэн тойронд бүтээгдсэн. STM32WL3x-Програм хангамжийн багц (3)0-р түвшин
Энэ түвшинг гурван дэд давхаргад хуваадаг.

  • Зөвлөлийн дэмжлэгийн багц (BSP).
  • Техник хангамжийн хийсвэр давхарга (HAL):
    • HAL захын драйверууд
    • Бага түвшний драйверууд
  • Үндсэн захын хэрэглээ жишээ ньamples.

Зөвлөлийн дэмжлэгийн багц (BSP)
Энэ давхарга нь техник хангамжийн самбар дээрх техник хангамжийн бүрэлдэхүүн хэсгүүдтэй (LED, товчлуурууд, COM драйверууд гэх мэт) хамааралтай API багцуудыг санал болгодог. Энэ нь хоёр хэсгээс бүрдэнэ:

  • Бүрэлдэхүүн хэсэг:
    Энэ нь STM32 биш харин самбар дээрх гадаад төхөөрөмжтэй холбоотой драйвер юм. Бүрэлдэхүүн хэсгийн драйвер нь BSP драйверын гадаад бүрэлдэхүүн хэсгүүдэд тусгай API-г өгдөг бөгөөд бусад самбар дээр зөөврийн байж болно.
  • BSP драйвер:

Энэ нь бүрэлдэхүүн хэсгийн драйверуудыг тодорхой самбарт холбох боломжийг олгодог бөгөөд хэрэглэгчдэд ээлтэй API-уудын багцыг өгдөг. API нэрлэх дүрэм нь BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP нь модульчлагдсан архитектур дээр суурилдаг бөгөөд зөвхөн доод түвшний горимуудыг хэрэгжүүлснээр ямар ч техник хангамжийг хялбархан шилжүүлэх боломжийг олгодог.

Техник хангамжийн хийсвэр давхарга (HAL) ба бага давхарга (LL)
STM32CubeWL3 HAL болон LL нь нэмэлт бөгөөд өргөн хүрээний хэрэглээний шаардлагыг хамардаг:

  • HAL драйверууд нь өндөр түвшний функцэд чиглэсэн өндөр зөөврийн API-г санал болгодог. Тэд эцсийн хэрэглэгчдэд MCU болон захын нарийн төвөгтэй байдлыг нуудаг.
    HAL драйверууд нь ашиглахад бэлэн процессуудыг бий болгосноор хэрэглэгчийн програмын хэрэгжилтийг хялбаршуулдаг ерөнхий олон тохиолдолт онцлогт чиглэсэн API-уудыг өгдөг. Жишээ ньample, холбооны захын төхөөрөмжүүдийн хувьд (I2C, UART болон бусад) энэ нь захын төхөөрөмжийг эхлүүлэх, тохируулах, санал асуулга, тасалдал эсвэл DMA процесс дээр үндэслэн өгөгдөл дамжуулах, харилцааны явцад гарч болзошгүй харилцааны алдааг зохицуулах боломжийг олгодог API-уудыг өгдөг. HAL драйвер API нь хоёр ангилалд хуваагдана:
  1. Бүх STM32 цуврал микроконтроллеруудад нийтлэг болон ерөнхий функцүүдийг хангадаг ерөнхий API-ууд.
  2. Тодорхой гэр бүл эсвэл тодорхой хэсгийн дугаарт тусгайлан тохируулсан функцуудыг хангадаг өргөтгөлийн API.
  • Доод түвшний API-ууд нь бүртгэлийн түвшинд доод түвшний API-г өгдөг бөгөөд илүү оновчтой боловч зөөвөрлөх чадвар багатай. Тэд MCU болон захын техникийн үзүүлэлтүүдийн талаар гүнзгий мэдлэг шаарддаг.
    LL драйверууд нь HAL-аас илүү техник хангамжид ойр, түргэн хөнгөн, мэргэжилтэн рүү чиглэсэн давхаргыг санал болгохоор бүтээгдсэн. HAL-аас ялгаатай нь LL API нь оновчтой хандалт нь гол шинж чанар биш, эсвэл хүнд програм хангамжийн тохиргоо эсвэл нарийн төвөгтэй дээд түвшний стек шаарддаг захын төхөөрөмжүүдэд зориулагдсангүй.

LL драйверуудын онцлог нь:

  • Өгөгдлийн бүтцэд заасан параметрийн дагуу захын үндсэн функцуудыг эхлүүлэх функцүүдийн багц.
  • Эхлэх өгөгдлийн бүтцийг талбар бүрт тохирох дахин тохируулах утгуудаар дүүргэх функцүүдийн багц.
  • Захын төхөөрөмжийг идэвхгүй болгох функц (захын регистрүүдийг анхдагч утгаараа сэргээсэн).
  • Шууд болон атомын бүртгэлд хандах зориулалттай шугаман функцүүдийн багц.
  • HAL-аас бүрэн хараат бус, бие даасан горимд (HAL драйвергүйгээр) ашиглах боломжтой.
  • Дэмжигдсэн захын функцүүдийн бүрэн хамрах хүрээ.

Үндсэн захын хэрэглээ жишээ ньamples
Энэ давхарга нь өмнөх давхаргыг хамардагampЗөвхөн HAL болон BSP нөөцийг ашиглан STM32 захын төхөөрөмж дээр бүтээгдсэн.
Жагсаал өмнөхamples нь илүү төвөгтэй экс харуулах боломжтойampMRSUBG болон LPAWUR зэрэг тусгай дагалдах төхөөрөмжтэй хувилбарууд.

1-р түвшин
Энэ түвшинг хоёр дэд давхаргад хуваадаг.

  • Дунд програмын бүрэлдэхүүн хэсгүүд
  • Exampдунд програмын бүрэлдэхүүн хэсгүүд дээр суурилсан les

Дунд програмын бүрэлдэхүүн хэсгүүд
Дунд програм нь FreeRTOS™ цөм, FatFS, Sigfox™ протоколын санг хамарсан сангуудын багц юм. Энэ давхаргын бүрэлдэхүүн хэсгүүдийн хоорондох хэвтээ харилцан үйлчлэл нь онцолсон API-г дуудах замаар хийгддэг.
Доод түвшний драйверуудтай босоо харилцан үйлчлэл нь номын сангийн системийн дуудлагын интерфейс дээр хэрэгжсэн тодорхой буцаан дуудлагууд болон статик макронуудаар хийгддэг.
Дунд зэргийн програм хангамжийн бүрэлдэхүүн хэсэг бүрийн үндсэн шинж чанарууд нь дараах байдалтай байна.

  • FreeRTOS™ цөм: суулгагдсан системд зориулагдсан бодит цагийн үйлдлийн системийг (RTOS) хэрэгжүүлдэг.
  • Sigfox ™: Sigfox ™ протоколын сүлжээнд нийцсэн Sigfox ™ протоколын санг хэрэгжүүлдэг ба RF Sigfox ™ хэрэгслүүдийн эсрэг тест хийх RF тестийн протоколын санг агуулдаг.
  • FatFS: ерөнхий FAT-ийг хэрэгжүүлдэг file системийн модуль.

Exampдунд програмын бүрэлдэхүүн хэсгүүд дээр суурилсан les
Дунд програмын бүрэлдэхүүн хэсэг бүр нэг буюу хэд хэдэн экс-тэй ирдэгamples, мөн програм гэж нэрлэдэг, хэрхэн ашиглахыг харуулж байна. Интеграци жишээлбэлampДундын програм хангамжийн хэд хэдэн бүрэлдэхүүн хэсгүүдийг ашигладаг.

STM32CubeWL3 програм хангамжийн багц дууссанview

STM32WL3x төхөөрөмж болон техник хангамжийг дэмждэг
STM32Cube нь ерөнхий архитектурын эргэн тойронд бүтээгдсэн өндөр зөөврийн техник хангамжийн хийсвэр давхаргыг (HAL) санал болгодог. Энэ нь MCU-г юу ашиглаж байгааг мэдэхгүй, гүнзгийрүүлэн мэдэхгүйгээр дунд програмын давхаргыг ашиглах гэх мэт давхаргыг бий болгох зарчмыг зөвшөөрдөг. Энэ нь номын сангийн кодыг дахин ашиглах боломжийг сайжруулж, бусад төхөөрөмжид хялбар зөөвөрлөх боломжийг олгодог.

  • Нэмж дурдахад, STM32CubeWL3 нь давхаргат архитектураараа STM32WL3x бүтээгдэхүүний бүх шугамд бүрэн дэмжлэг үзүүлдэг.
  • Хэрэглэгч зөвхөн stm32wl3x.h дээр зөв макро тодорхойлох ёстой.

Хүснэгт 1-д ашигласан STM32WL3x бүтээгдэхүүний шугамын төхөөрөмжөөс хамааран тодорхойлох макрог харуулав. Энэ макро нь хөрвүүлэгчийн урьдчилсан процессорт мөн тодорхойлогдсон байх ёстой.
Хүснэгт 1. STM32WL3x бүтээгдэхүүний шугамын макро

Макро-д тодорхойлсон stm32wl3x.h STM32WL3x бүтээгдэхүүний шугамын төхөөрөмжүүд
stm32wl33 STM32WL33xx микроконтроллерууд

STM32CubeWL3 нь экс-ийн баялаг багцтайampбүх түвшний программууд болон програмууд нь HAL драйвер эсвэл дунд програмын бүрэлдэхүүн хэсгүүдийг ойлгох, ашиглахад хялбар болгодог. Эдгээр өмнөхampХүснэгт 2-т жагсаасан STMicroelectronics самбар дээр ажилладаг.

Удирдах зөвлөл STM32WL3x хавтанг дэмждэг төхөөрөмжүүд
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

STM32CubeWL3 MCU багц нь ямар ч нийцтэй техник хангамж дээр ажиллах боломжтой. Хэрэглэгчид зүгээр л BSP драйверуудыг шинэчилж өгсөн хуучин хувилбарыг порт руу шилжүүлдэгampхэрэв тэдгээр нь ижил техник хангамжийн шинж чанартай бол (LED эсвэл товчлуур гэх мэт) самбар дээр байгаа бол.

Програм хангамжийн багц дууссанview
STM32CubeWL3 MCU багцын шийдэл нь Зураг 3-т үзүүлсэн бүтэцтэй нэг зип багцаар хангагдсан болно.
Зураг 3. STM32CubeWL3 програм хангамжийн багц бүтэц

STM32WL3x-Програм хангамжийн багц (4)

Анхааруулга:

Хэрэглэгч бүрэлдэхүүн хэсгүүдийг өөрчлөх ёсгүй fileс. Хэрэглэгч зөвхөн \Projects эх сурвалжийг засах боломжтой.
Самбар бүрийн хувьд хуучин багцamples нь EWARM, MDK-ARM болон STM32CubeIDE хэрэгслийн гинжин хэлхээнд зориулж урьдчилан тохируулсан төслүүдээр хангагдсан.
Зураг 4-т NUCLEO-WL33CCx хавтангийн төслийн бүтцийг харуулав. STM32WL3x-Програм хангамжийн багц (5)

эксamples-г хэрэглэх STM32CubeWL3 түвшингээс хамааран ангилдаг. Тэдгээрийг дараах байдлаар нэрлэсэн.

  • 0-р түвшний өмнөхamples-ийг Ex гэж нэрлэдэгamples, Examples_LL болон Examples_MIX. Тэд HAL драйверууд, LL драйверууд болон HAL болон LL драйверуудын холимогийг ямар ч дундын програм хангамжийн бүрэлдэхүүн хэсэггүйгээр ашигладаг. Жагсаал өмнөхamples бас боломжтой.
  • 1-р түвшний өмнөхampпрограмууд гэж нэрлэдэг. Эдгээр нь дунд програмын бүрэлдэхүүн хэсэг бүрийн ердийн хэрэглээний тохиолдлыг өгдөг.

Өгөгдсөн самбарт зориулсан ямар ч програм хангамжийг Templ ates болон Templates_LL лавлахуудад байгаа загвар төслүүдийг ашиглан хурдан бүтээх боломжтой.

Examples, Examples_LL болон Examples_MIX ижил бүтэцтэй:

  • Бүх толгой хэсгийг агуулсан \Inc хавтас files.
  • Эх код агуулсан \Src хавтас.
  • \EWARM, \MDK-ARM болон \STM32CubeIDE хавтаснууд нь багажны хэлхээ тус бүрийн урьдчилан тохируулсан төслийг агуулсан.
  • readme.md болон readme.html эксийг тайлбарласанample зан байдал, түүнийг ажиллуулахад шаардлагатай орчин.

STM32CubeWL3-ийг ашиглаж эхэлж байна

Анхны эксийг ажиллуулж байнаample
Энэ хэсэгт анхны экс-ыг ажиллуулах нь хичнээн энгийн болохыг тайлбарладагample STM32CubeWL3 дотор. Энэ нь NUCLEO-WL33CC1 самбар дээр ажилладаг энгийн LED унтраалга үүсгэх жишээг ашигласан болно.

  1. STM32CubeWL3 MCU багцыг татаж аваарай.
  2. Үүнийг задлах эсвэл суулгагчийг суулгасан бол өөрийн сонгосон лавлах руу ажиллуул.
  3. Зураг 3-т үзүүлсэн багцын бүтцийг өөрчлөхгүй байхыг анхаарна уу. STM32CubeWL3 програмын багцын бүтцийг. Зарим IDE-д зам хэт урт байвал асуудалтай тулгардаг тул багцыг эх эзлэхүүнтэй ойрхон (C:\ST эсвэл G:\Tests гэсэн үг) хуулахыг зөвлөж байна.

HAL экс-г хэрхэн ажиллуулах вэample
Ачаалах, ажиллуулахын өмнө эксampле, эксийг уншихыг зөвлөж байнаampнамайг унш file ямар нэгэн тодорхой тохиргооны хувьд.

  1. \Projects\NUCLEO-WL33CC\Жишamples.
  2. \GPIO, дараа нь \GPIO_EXTI фолдеруудыг нээнэ үү.
  3. Төслийг сонгосон хэрэгслийн гинжээр нээнэ үү. Түргэн дууслааview экс-ыг хэрхэн нээх, бүтээх, ажиллуулах талаарampДэмжигдсэн хэрэгслийн гинж бүхий le-г доор өгөв.
  4. Бүгдийг нь сэргээ files ба дүрсийг зорилтот санах ойд ачаална.
  5. Эксийг ажиллуулample. Дэлгэрэнгүй мэдээллийг экс-ээс авна ууampнамайг унш file.

Эксийг нээх, бүтээх, ажиллуулахampДэмжигдсэн хэрэгслийн гинж тус бүрийг ашиглан дараах алхмуудыг дагана уу.

  • EWARM:
  1. Экс доорamples хавтас руу ороод \EWARM дэд хавтасыг нээнэ үү.
  2. Project.eww ажлын талбарыг ажиллуулна уу (ажлын талбарын нэр нэг өмнөхөөс өөрчлөгдөж магадгүйampнөгөө рүү).
  3. Бүгдийг нь сэргээ files: [Төсөл]>[Бүгдийг дахин бүтээх].
  4. Төслийн зургийг ачаална уу: [Төсөл]> [Дабаг].
  5. Програмыг ажиллуулна уу: [Debug]>[Go (F5)].
  • MDK-ARM:
  1. Экс доорamples хавтас руу ороод \MDK-ARM дэд хавтасыг нээнэ үү.
  2. Project.uvproj ажлын талбарыг нээнэ үү (ажлын талбарын нэр нэг хуучин байснаас өөрчлөгдөж магадгүйampнөгөө рүү).
  3. Бүгдийг нь сэргээ files: [Төсөл]>[Бүх зорилтыг дахин бүтээх files].
  4. Төслийн зургийг ачаална уу: [Дбаг]>[Дабаг хийх сессийг эхлүүлэх/ зогсоох].
  5. Програмыг ажиллуулна уу: [Debug]>[Run (F5)].
  • STM32CubeIDE:
  1. STM32CubeIDE хэрэгслийн сүлжээг нээнэ үү.
  2. Дээр товшино уу [File]>[Ажлын талбарыг сэлгэх]>[Бусад] руу ороод STM32CubeIDE ажлын талбарын лавлах руу очно уу.
  3. Дээр товшино уу [File]>[Импорт], [Ерөнхий]> [Ажлын талбарт байгаа төслүүд]-г сонгоод, [Дараах] дээр дарна уу.
  4. STM32CubeIDE ажлын талбарын лавлах руу орж төслийг сонго.
  5. Бүх төслийг дахин бүтээх files: Project Explorer цонхноос төслөө сонгоод дээр нь дарна уу
    [Төсөл]>[Төсөл бүтээх] цэс.
  6.  Програмыг ажиллуулна уу: [Run]> [Debug (F11)].

Захиалгат програм боловсруулах

STM32CubeMX ашиглан программыг хөгжүүлэх эсвэл шинэчлэх
STM32Cube MCU багцад бараг бүх төслийн өмнөхamples нь STM32CubeMX хэрэглүүрийн тусламжтайгаар систем, захын төхөөрөмж болон дунд програмыг эхлүүлэхэд зориулагдсан.

Одоо байгаа төслийг шууд ашиглах жишээлбэлampSTM32CubeMX хэрэглүүрийн хувьд STM32CubeMX 6.12.0 буюу түүнээс дээш хувилбар шаардлагатай:

  • STM32CubeMX суулгасны дараа санал болгож буй төслийг нээж, шаардлагатай бол шинэчилнэ үү.
    Одоо байгаа төслийг нээх хамгийн энгийн арга бол *.ioc дээр давхар товших явдал юм file Ингэснээр STM32CubeMX нь төсөл болон түүний эх сурвалжийг автоматаар нээдэг fileс. STM32CubeMX нь ийм төслүүдийн эхлүүлэх эх кодыг үүсгэдэг.
  • Програмын үндсэн эх код нь "ХЭРЭГЛЭГЧИЙН КОД ЭХЛҮҮЛЭХ" болон "ХЭРЭГЛЭГЧИЙН КОД Төгсгөл" гэсэн тайлбаруудаас бүрдэнэ. Хэрэв захын сонголт болон тохиргоог өөрчилсөн бол STM32CubeMX нь үндсэн програмын эх кодыг хадгалахын зэрэгцээ кодын эхлүүлэх хэсгийг шинэчилдэг.

STM32CubeMX ашиглан захиалгат төсөл боловсруулахын тулд алхам алхмаар үйл явцыг дагана уу:

  1. Зөрчилдөөнийг шийдэгч, цагийн модыг тохируулах туслах, эрчим хүчний хэрэглээний тооцоолуур болон MCU захын тохиргоог гүйцэтгэдэг хэрэгсэл (GPIO эсвэл USART гэх мэт) ашиглан шаардлагатай бүх суулгагдсан програм хангамжийг тохируулна уу.
  2. Сонгосон тохиргоонд үндэслэн эхлүүлэх C кодыг үүсгэнэ. Энэ код нь хэд хэдэн хөгжүүлэлтийн орчинд ашиглахад бэлэн байна. Хэрэглэгчийн код нь дараагийн код үүсгэх үед хадгалагдана.
    STM32CubeMX-ийн талаар нэмэлт мэдээлэл авахыг хүсвэл STM32-г тохируулах болон эхлүүлэх C код үүсгэх (UM32) STM1718CubeMX хэрэглэгчийн гарын авлагаас үзнэ үү.

Жолооч програмууд

HAL програм
Энэ хэсэгт STM32CubeWL3 ашиглан захиалгат HAL програмыг бий болгоход шаардагдах алхмуудыг тайлбарлана.

  1. Төсөл үүсгэх
    Шинэ төсөл үүсгэхийн тулд \Projects\< STM32xxx_yyy>\Templates доор байгаа самбар тус бүрт өгөгдсөн Загвар төслөөс эсвэл \Projects\ доор байгаа аль ч боломжтой төслөөс эхлүүлнэ үү. \Жишээ ньampl es эсвэл \Projects\ \Програмууд (хаана самбарын нэрийг хэлнэ). Загвар төсөл нь хоосон үндсэн давталтын функцээр хангадаг. Гэсэн хэдий ч, энэ нь STM32CubeWL32 төслийн тохиргоог ойлгоход сайн эхлэл юм. Загвар нь дараахь шинж чанартай байдаг.
    • Энэ нь HAL эх код, CMSIS болон BSP драйверуудыг агуулдаг бөгөөд эдгээр нь тухайн самбар дээр код боловсруулахад шаардагдах хамгийн бага бүрэлдэхүүн хэсэг юм.
    • Энэ нь програм хангамжийн бүх бүрэлдэхүүн хэсгүүдийн замуудыг агуулдаг.
    • Энэ нь дэмжигдсэн STM32WL3x бүтээгдэхүүний шугамын төхөөрөмжүүдийг тодорхойлж, CMSIS болон HAL драйверуудыг зөв тохируулах боломжийг олгодог.
    • Энэ нь ашиглахад бэлэн хэрэглэгчээр хангадаг fileдоор үзүүлсэн шиг урьдчилан тохируулсан:
    • HAL-г Arm® core SysTick-ээр анхдагч цагийн суурьтай болгосон.
    • SysTick ISR нь HAL_Delay() зорилгоор хэрэгжсэн.
      Тайлбар: Одоо байгаа төслийг өөр байршилд хуулахдаа оруулсан бүх замууд шинэчлэгдсэн эсэхийг шалгаарай.
  2. Програм хангамжийн бүрэлдэхүүн хэсгүүдийг тохируулна уу
    HAL болон дунд програмын бүрэлдэхүүн хэсгүүд нь толгой хэсэгт зарласан #define макронуудыг ашиглан бүтээх цагийн тохиргооны багц сонголтыг санал болгодог. file. Загварын тохиргоо file Бүрэлдэхүүн хэсэг тус бүрд өгөгдсөн бөгөөд үүнийг төслийн хавтсанд (ихэвчлэн тохиргоо file xxx_conf_template.h нэртэй, _template фрагментийг төслийн хавтас руу хуулахдаа устгах шаардлагатай). Тохиргоо file тохиргооны сонголт бүрийн нөлөөллийг ойлгох хангалттай мэдээллийг өгдөг. Бүрэлдэхүүн хэсэг тус бүрээр өгөгдсөн баримт бичигт илүү нарийвчилсан мэдээллийг авах боломжтой.
  3. HAL номын санг эхлүүлнэ үү
    Үндсэн програм руу шилжсэний дараа програмын код нь HAL_Init() API-г дуудаж, дараах ажлуудыг гүйцэтгэдэг HAL номын санг эхлүүлэх шаардлагатай.
    • Флэш санах ойг урьдчилан татах болон SysTick тасалдлын тэргүүлэх чиглэлийн тохиргоо (stm3 2wl3x_hal_conf.h-д тодорхойлсон макрогоор).
    •  stm32wl3x_hal_conf.h-д тодорхойлсон TICK_INT_PRIO SysTick тасалдлын тэргүүлэх чиглэлд миллисекунд тутамд тасалдал үүсгэх SysTick-ийн тохиргоо.
    • NVIC бүлгийн тэргүүлэх чиглэлийг 0 болгож тохируулна уу.
    • stm32wl3x_hal_msp.c хэрэглэгчдэд тодорхойлсон HAL_MspInit() буцаан дуудах функцийн дуудлага file дэлхийн доод түвшний техник хангамжийг эхлүүлэх.
  4. Системийн цагийг тохируулна уу
    Системийн цагийн тохиргоог доор тайлбарласан хоёр API-г дуудах замаар хийдэг.
    • HAL_RCC_OscConfig(): энэ API нь дотоод болон гадаад осцилляторыг тохируулдаг. Хэрэглэгч нэг эсвэл бүх осцилляторыг тохируулахаар сонгоно.
    • HAL_RCC_ClockConfig(): энэ API нь системийн цагийн эх үүсвэр, флаш санах ойн хоцрогдол, AHB болон APB тохируулагчийг тохируулдаг.
  5. Захын төхөөрөмжийг эхлүүлэх
    •  Эхлээд захын төхөөрөмжийг эхлүүлэх функцийг бичнэ үү. Дараах байдлаар гүйцэтгэнэ.
    • Захын цагийг идэвхжүүлнэ үү.
    • Захын GPIO-г тохируулна уу.
    • DMA сувгийг тохируулж, DMA тасалдлыг идэвхжүүлнэ (шаардлагатай бол).
    • Захын тасалдлыг идэвхжүүлэх (шаардлагатай бол).
    • Шаардлагатай бол stm32xxx_it.c-г засварлаж, шаардлагатай тасалдал зохицуулагчийг (захын болон DMA) дуудна уу.
    •  Хэрэв захын тасалдал эсвэл DMA ашиглахаар төлөвлөж байгаа бол процессын бүрэн дуудлагын функцуудыг бичнэ үү.
    •  Хэрэглэгчийн үндсэн хэсэгт.c file, захын бариулын бүтцийг эхлүүлж, захын төхөөрөмжийг эхлүүлэхийн тулд захын эхлүүлэх функцийг дууд.
  6. Аппликейшн боловсруулах
    Энэ үед сtage, систем бэлэн болсон бөгөөд хэрэглэгчийн програмын код боловсруулж эхлэх боломжтой.
    HAL нь захын төхөөрөмжийг тохируулахад хялбар, ашиглахад бэлэн API-уудыг өгдөг. Энэ нь санал асуулга, тасалдал, DMA програмчлалын загварыг дэмждэг бөгөөд аливаа програмын шаардлагыг хангадаг. Дагалдах төхөөрөмж тус бүрийг хэрхэн ашиглах талаар дэлгэрэнгүй мэдээллийг rich ex-ээс авна ууample багцыг STM32CubeWL3 MCU багцад өгсөн.

Анхааруулга:
Анхдагч HAL хэрэгжилтэд SysTick таймерыг цагийн суурь болгон ашигладаг: энэ нь тогтмол хугацааны интервалаар тасалдлыг үүсгэдэг. Хэрэв HAL_Delay() нь захын ISR процессоос дуудагдсан бол SysTick тасалдал захын тасалдлаас өндөр ач холбогдолтой (тоон хувьд бага) байгаа эсэхийг шалгаарай. Үгүй бол дуудагч ISR үйл явц байна
блоклосон. Хугацааны сангийн тохиргоонд нөлөөлж буй функцуудыг __сул гэж зарласан бөгөөд ингэснээр хэрэглэгч бусад хэрэгжүүлэлтийн үед хүчингүй болгох боломжтой болно. file (ерөнхий зориулалтын таймер ашиглах, жишээ ньample, эсвэл өөр цаг хугацааны эх сурвалж).
Дэлгэрэнгүй мэдээллийг HAL_TimeBase-с үзнэ үүample.

LL програм
Энэ хэсэгт STM32CubeWL3 ашиглан захиалгат LL программ үүсгэхэд шаардлагатай алхмуудыг тайлбарласан болно.

  1. Төсөл үүсгэх
    Шинэ төсөл үүсгэхийн тулд \Projects\ хэсэгт самбар тус бүрд өгсөн Templates_LL төслөөс эхэлнэ үү. \Templates_LL эсвэл \Projects\ доор байгаа аль ч боломжтой төслөөс \E xamples_LL ( NUCLEO-WL32CC33 гэх мэт самбарын нэрийг хэлнэ).
    Загварын төсөл нь хоосон гол давталтын функцээр хангадаг бөгөөд энэ нь STM32CubeWL3-ийн төслийн тохиргоог ойлгоход сайн эхлэл юм. Загварын үндсэн шинж чанарууд нь дараах байдалтай байна.
    • Энэ нь LL болон CMSIS драйверуудын эх кодыг агуулдаг бөгөөд энэ нь тухайн самбар дээрх кодыг боловсруулахад шаардагдах хамгийн бага бүрэлдэхүүн хэсэг юм.
    • Энэ нь шаардлагатай бүх програм хангамжийн бүрэлдэхүүн хэсгүүдийн замуудыг агуулдаг.
    • Энэ нь дэмжигдсэн STM32WL3x бүтээгдэхүүний шугамын төхөөрөмжийг сонгож, CMSIS болон LL драйверуудыг зөв тохируулах боломжийг олгодог.
    • Энэ нь хэрэглэгчийг ашиглахад бэлэн болгодог fileдараах байдлаар урьдчилан тохируулсан байна:
    • main.h: LED ба USER_BUTTON тодорхойлолтын хийсвэр давхарга.
    • main.c: Хамгийн их давтамжийн системийн цагийн тохиргоо.
  2. LL хуучин портampле:
    • Анхны эх сурвалжийг хадгалахын тулд Templates_LL фолдерыг хуулах/оруулах, эсвэл одоо байгаа Templa tes_LL төслийг шууд шинэчлэх.
    • Дараа нь зөөвөрлөх нь үндсэндээ Templates_LL-ийг орлуулахаас бүрдэнэ files by Examples_LL зорилтот төсөл.
    • Самбарын бүх тусгай хэсгүүдийг хадгал. Тодорхой болгох үүднээс самбарын тодорхой хэсгүүдийг тусгайлан тэмдэглэсэн болно tags:
      STM32WL3x-Програм хангамжийн багц (1)

Тиймээс зөөвөрлөх үндсэн алхамууд нь дараах байдалтай байна.

  • stm32wl3x_it.h-г солино уу file.
  • stm32wl3x_it.c-г солино уу file.
  • Үндсэн.h-г солих file болон үүнийг шинэчлэх: LL загварын LED болон хэрэглэгчийн товчлуурын тодорхойлолтыг ЗӨВЛӨГИЙН ТУСГАЙ ТОХИРУУЛГА доор хадгална уу. tags.
  • Үндсэн хэсгийг солих.c file мөн шинэчлэх:
  • SystemClock_Config() LL загварын функцийн цагийн тохиргоог ЗӨВЛӨГИЙН ТУСГАЙ ТОХИРУУЛГА дор хадгална уу. tags.
  • LED-ийн тодорхойлолтоос хамааран LDx тохиолдол бүрийг өөр LDy-ээр солино file гол.х.

Эдгээр өөрчлөлтүүдээр эксample зорилтот самбар дээр гүйдэг.

RF-ийн програмууд, жагсаалууд, жишээлбэлamples
Төрөл бүрийн RF-ийн хэрэглээ, жагсаал, жишээлбэлamples нь STM32CubeWL3 багцад байдаг. Тэдгээрийг доорх хоёр хэсэгт жагсаав.

Дэд GHz жишээлбэлamples болон жагсаал
Эдгээр өмнөхamples нь MRSUBG болон LPAWUR радио нэмэлт төхөөрөмжүүдийн үндсэн шинж чанаруудыг харуулдаг. Эдгээр өмнөхamples доор байдаг:

  • Төслүүд\NUCLEO-WL33CC\Жишamples\MRSUBG
  • Төслүүд\NUCLEO-WL33CC\Жишamples\LPAWUR
  • Төслүүд\NUCLEO-WL33CC\Жагсаал\MRSUBG
  • Төслүүд \ NUCLEO-WL33CC \ Жагсаал \ LPAWUR

Хуучин бүрample эсвэл үзүүлэн нь ерөнхийдөө Tx болон Rx гэсэн хоёр программаас бүрдэх ба дамжуулагч болон хүлээн авагчийн үүрэг гүйцэтгэдэг:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: 802.15.4 стандартаар тодорхойлсон физик давхаргын хэрэгжилт. Энэ нь 802.15.4 пакетуудыг дамжуулах эсвэл хүлээн авах радиог хэрхэн тохируулахыг харуулж байна.
    • MRSUBG_BasicGeneric: STM32WL3x MR_SUBG үндсэн пакетуудын солилцоо.
    • MRSUBG_Chat: Tx болон Rx-ийг нэг төхөөрөмж дээр хэрхэн ашиглахыг харуулсан энгийн программ.
    • MRSUBG_DatabufferHandler: Хуучинample нь Databuffer 0 ба 1-ээс хэрхэн солигдохыг харуулдаг.
    • MRSUBG_Sequencer AutoAck: Жишээ ньample нь пакет хүлээн зөвшөөрлийг (ACKs) автоматаар дамжуулж, хүлээн авдаг.
    • MRSUBG_WMBusSTD: WM-Bus мессеж солилцох.
    • WakeupRadio: Хуучинample LPAWUR радио захын төхөөрөмжийг турших.
  • Жагсаал/MRSUBG
    • MRSUBG_RTC_Button_TX: Энэ жишээ ньample нь SoC-г гүн зогсолтын горимд хэрхэн тохируулах, MRSUBG-г PB2 товчийг дарж фрейм илгээх эсвэл RTC таймерын хугацаа дууссаны дараа SoC-г сэрээхээр тохируулахыг харуулж байна.
    • MRSUBG_Sequencer_Sniff: Энэ жишээ ньample нь MRSUBG дараалагчийг үнэрлэх горимд хэрхэн тохируулахыг харуулж байна. Энэ эксample нь хүлээн авагч талыг харуулж, дамжуулагчийн хувьд өөр төхөөрөмж шаарддаг.
    • MRSUBG_Timer: Аппликешн нь өөр өөр хугацааны интервалтай MRSUBG таймерын хэд хэдэн тохиолдлыг (автоматаар дахин ачаалах) хуваарьтай.
    • MRSUBG_WakeupRadio_Tx: Энэ жишээ ньample нь SoC-г гүн зогсолтын горимд хэрхэн тохируулах, MRSUBG-г PB2 товчийг дарж фрэйм ​​илгээх замаар SoC-г сэрээх тохиргоог тайлбарлана. Энэ эксample нь дамжуулагчийн талыг харуулсан бөгөөд LPAWUR хүлээн авагчийн хувьд өөр төхөөрөмж шаарддаг. Хүлээн авагч өмнөхample нь NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx хавтасны доор байрладаг.
  • Жагсаал/LPAWUR
    • LPAWUR_WakeupRadio_Rx: Энэ жишээ ньample нь SoC-г гүн зогсолтын горимд хэрхэн тохируулах, LPAWUR-ийг фрэйм ​​ирж, зөв ​​хүлээн авах үед SoC-г сэрээхийн тулд хэрхэн тохируулахыг тайлбарладаг. Энэ эксample нь хүлээн авагч талыг харуулж, дамжуулагчийн хувьд өөр төхөөрөмж шаарддаг. Дамжуулагч өмнөхample нь NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx хавтасны доор байрладаг.

Sigfox™ програм
Эдгээр програмууд нь Sigfox™ хувилбарыг хэрхэн хэрэгжүүлэх, боломжтой Sigfox™ API-г ашиглахыг харуулдаг. Тэдгээрийг Projects\NUCLEO-WL33CC\Applications\Sigfox\ төслийн замд авах боломжтой:

  • Sigfox_CLI: Энэхүү програм нь Sigfox™ протоколыг ашиглан мессеж илгээж, баталгаажуулалтын тест хийх командын мөрийн интерфейсийг (CLI) хэрхэн ашиглахыг харуулж байна.
  • Sigfox_PushButton: Энэхүү програм нь STM32WL33xx Sigfox ™ төхөөрөмжийн радио чадавхийг үнэлэх боломжийг олгодог. PB1-ийг дарснаар Sigfox™-ийн туршилтын хүрээ дамжуулагдана.

Түгээмэл асуултууд

  1. Би хэзээ LL драйверуудын оронд HAL ашиглах ёстой вэ?
    HAL драйверууд нь өндөр түвшний зөөвөрлөх чадвартай, өндөр түвшний, функцэд чиглэсэн API-уудыг санал болгодог. Бүтээгдэхүүн эсвэл захын нарийн төвөгтэй байдал нь эцсийн хэрэглэгчдэд нуугддаг.
    LL драйверууд нь илүү оновчтой боловч зөөврийн чадвар багатай, доод түвшний бүртгэлийн түвшний API-г санал болгодог. Тэд бүтээгдэхүүн эсвэл IP техникийн үзүүлэлтүүдийн талаар гүнзгий мэдлэг шаарддаг.
  2. HAL болон LL драйверуудыг хамтад нь ашиглаж болох уу? Хэрэв тийм бол ямар хязгаарлалтууд байдаг вэ?
    HAL болон LL драйверуудыг хоёуланг нь ашиглах боломжтой. Захын төхөөрөмжийг эхлүүлэх үе шатанд HAL-г ашиглаад дараа нь LL драйверуудтай оролт/гаралтын ажиллагааг удирдана.
    HAL ба LL хоёрын гол ялгаа нь HAL драйверууд үйлдлийн удирдлагад бариулыг үүсгэж ашиглах шаардлагатай байдаг бол LL драйверууд захын регистрүүд дээр шууд ажилладаг. HAL ба LL-ийг холихыг жишээнд үзүүлэвamples_MIX жишээ ньamples.
  3. LL эхлүүлэх API-г хэрхэн идэвхжүүлсэн бэ?
    LL эхлүүлэх API болон холбогдох нөөцийн (бүтэц, literals болон загварууд) тодорхойлолтыг USE_FULL_LL_DRIVER эмхэтгэлийн шилжүүлэгчээр болзуулдаг.
    LL эхлүүлэх API-г ашиглахын тулд энэ шилжүүлэгчийг багажийн хөрвүүлэгчийн урьдчилсан процессорт нэмнэ үү.
  4. MRSUBG/LPAWUR зах зээлд зориулсан загвар төсөл байна ууamples?
    Шинэ MRSUBG эсвэл LPAWUR хуучин үүсгэхample төсөл, аль нэг нь \Pr ojects\NUCLEO-WL33CC\Ex-д заасан араг яс төслөөс эхэлнэ.amples\MRSUBG эсвэл \Projects\NUCLEO-WL33CC\Examples\LPAWUR, эсвэл эдгээр сангуудын доор байгаа аливаа төслөөс.
  5. STM32CubeMX суулгагдсан программ хангамж дээр суурилсан кодыг хэрхэн үүсгэх вэ?
    STM32CubeMX нь STM32 микроконтроллерууд, тэдгээрийн дагалдах төхөөрөмж, программ хангамжийн талаар суурилагдсан мэдлэгтэй бөгөөд энэ нь хэрэглэгчдэд график дүрслэл үзүүлж, *.h эсвэл *.c үүсгэх боломжийг олгодог. files нь хэрэглэгчийн тохиргоонд тулгуурласан.

Хяналтын түүх

Хүснэгт 3. Баримт бичгийн засварын түүх

Огноо Хяналт Өөрчлөлтүүд
29 оны 2024-р сарын XNUMX 1 Анхны хувилбар.
30 оны 2024-р сарын XNUMX 2 -ийг бүрэн нэгтгэх STM32CubeWL3 in STM32Cube. Шинэчлэгдсэн:

Устгасан:

  • PC хэрэгсэл, үүнд Навигатор, STM32WL3 GUI, ба MR-SUBG Sequencer GUI
  • WiSE-Studio IOMapper хэрхэн суулгагдсан программ хангамж дээр суурилсан код үүсгэх вэ?
  • Navigator програм хангамжийн багцын нөөцөд хандахыг зөвшөөрдөг үү?

Баримт бичиг / нөөц

ST STM32WL3x програм хангамжийн багц [pdf] Заавар
STM32WL3x програм хангамжийн багц, STM32WL3x, програм хангамжийн багц, багц

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *